Hoisting

It is a behaviour of moving variable or function declaration to the top of their environment.

  • JavaScript engine looks for the var and function key as a first word's in the line of the environment, it allocates the memory var and functions in its creation phase.

  • It moves the var and function to the top of the environment on creation phase.

  • The variables will be partially hoisted, that means the variable is created in top as a undefined variable, but functions are fully hoisted, means complete function is moved to the top.

  • EX:

Actual Code

Hoisted code

console.log(text); // undefined

greet(); // hello

console.log(greet2); // undefined

console.log(greet2()); // Type Error: greet2 is not a function

var text = ‘welcome’;

function greet() {

console.log(‘Hello’);

}

var greet2 = function() {

console.log(‘Hello2’);

}

var text = undefined;

var greet2 = undefined;

function greet() {

console.log(‘Hello’);

}

console.log(text); // undefined

greet(); // hello

console.log(greet2) // undefined

console.log(greet2()) // Type Error: greet2 is not a function

var text = ‘welcome’;

var greet2 = function() {

console.log(‘Hello2’);

}

Note: let and const will not be hoisted.

Last updated