Pergunta de entrevista da empresa Successive Technologies

Explain javascript concepts like Hoisting, Currying, Promise etc.