Hoisting in JavaScript

Hoisting is a JavaScript mechanism where variables and function declarations are moved to the top of their containing scope during the compilation phase. Understanding hoisting is crucial for writing efficient and bug-free JavaScript code. In this chapter, we'll explore hoisting from its basics to more advanced concepts, covering everything you need to know.

Introduction to Hoisting

Hoisting is a JavaScript behavior where variable and function declarations are moved to the top of their containing scope during the compilation phase. This allows variables and functions to be used before they are declared

Variable Hoisting

Variables declared with var are hoisted to the top of their containing scope, but only the declaration is hoisted, not the initialization

Variable Declaration Hoisting

				
					console.log(x); // Output: undefined
var x = 10;
console.log(x); // Output: 10

				
			

Explanation: Even though x is declared and initialized later in the code, the declaration is hoisted to the top, resulting in undefined when accessed before initialization.

Function Hoisting

Function declarations are hoisted in their entirety, including both the name and the body.

Function Declaration Hoisting

				
					greet(); // Output: "Hello, world!"

function greet() {
    console.log("Hello, world!");
}

				
			
  • Explanation: The function greet is hoisted to the top, allowing it to be called before its actual declaration in the code.

  • Function Expression Hoisting

    Function expressions are not hoisted like function declarations.

				
					greet(); // Throws TypeError: greet is not a function

var greet = function() {
    console.log("Hello, world!");
};

				
			

Explanation: Unlike function declarations, function expressions are not hoisted to the top, resulting in a TypeError when called before the assignment.

Hoisting in Practice

Understanding hoisting helps in avoiding unexpected behavior and writing cleaner code.

Hoisting Orde

				
					var x = 10;

function exampleFunction() {
    console.log(x);
    var x = 20;
}

exampleFunction(); // Output: undefined

				
			

Explanation: Inside exampleFunction, x is hoisted to the top of the function scope, but its initialization is not. Therefore, x is undefined when accessed before initialization.

Hoisting in Loops

Hoisting also applies to variables declared inside loops

				
					for (var i = 0; i < 3; i++) {
    console.log(i);
}

console.log(i); // Output: 3

				
			

Explanation: Even though i is declared inside the loop, it is hoisted to the top of the function scope, making it accessible outside the loop.

Hoisting is a fundamental concept in JavaScript that impacts how variables and functions are accessed and used. By understanding hoisting, you can write cleaner, more efficient code and avoid common pitfalls. Remember that while hoisting can be helpful, it's essential to be aware of its behavior to prevent unexpected results in your code.By now, you should have a solid understanding of hoisting in JavaScript, including variable hoisting, function hoisting, hoisting in practice, and hoisting in loops. Practice using these concepts in your code to reinforce your understanding and become a more proficient JavaScript developer. Happy coding !❤️

Table of Contents

Contact here

Copyright © 2025 Diginode

Made with ❤️ in India