Pregunta de entrevista de Successive Technologies

Explain javascript concepts like Hoisting, Currying, Promise etc.