Explain JavaScript execution contexts, scope and hoisting · 2daysbeforeinterview