What happens if two function declarations have the same name?
The last one wins. Both are hoisted with their full bodies, and the later declaration overwrites the earlier one in memory. So calls after both declarations always invoke the last one.
Verify This Answer
Cross-check this information using these trusted sources:
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
