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
Was this helpful?
