Hoisting in JavaScript: Variable Hoisting and Function Hoisting
What is Hoisting?
Hoisting is JavaScript's default behavior of moving declarations (not initializations) to the top of their scope before code execution.
Variable Hoisting
console.log(x); // undefined, not an error
var x = 5;
console.log(y); // ReferenceError
let y = 5;
var declarations are hoisted and initialized as undefined; let and const are hoisted but stay in a "temporal dead zone" until their declaration line executes.
Function Hoisting
greet(); // works fine
function greet() {
console.log("Hello!");
}
Function declarations are fully hoisted, including their body — but function expressions and arrow functions assigned to variables are not.
PreviousClosure in JavaScript: Explanation with Example
Next A Complete Guide to Prototypes in JavaScript: How They Work and Why They Matter
Ready to master real-world JavaScript development?
Learn JavaScript hands-on with mentor-led, live sessions.