Walk through the memory phase first: what is hoisted and to what value (undefined for var, full body for function declarations, TDZ for let/const). Then walk the execution phase line-by-line to determine each output.
Common Hoisting Interview Questions in JavaScript
How do you approach hoisting questions in an interview?
The answer
More FAQs in Common Hoisting Interview Questions in JavaScript
undefined. The var declaration is hoisted and initialized to undefined. The assignment a = 5 runs only when the line is reached, so the earlier log sees undefined.
TypeError: x is not a function. The var variable is hoisted with undefined, so calling it as a function fails. Only function declarations are hoisted with their body.
No. typeof on a let or const variable in the TDZ throws ReferenceError. typeof on a var that has not been assigned returns the string 'undefined' without throwing.
Still have questions?
Browse all our FAQs or reach out to our support team
Want to upskill yourself?
Your learning library
Small steps. Big possibilities.
Find your next course. Build something great.