Skip to content

Latest commit

 

History

History
60 lines (51 loc) · 1.25 KB

File metadata and controls

60 lines (51 loc) · 1.25 KB

Hoisting in JavaScript

//Example: 1
console.log(x)
var x = 7;

In most of the programming languages it will through an error because we can't use a variable before declaring it. But JavaScript is different. The output will be :

undefined
// Example: 2
console.log(x)

It will through :

ReferenceError: x is not defined
// Example: 3
console.log(Hello);

function Hello(){
  console.log("Hello World");
}
[Function: Hello]

Remember in JavaScript, Even before the code starts executing memory is being alocated to all variables and functions. Variables are undefined but not functions.

In example 2 the output is not defined. Not defined means the variable is not present in the program. But undefined means it is present but not present in the scope.

// Example: 4
console.log(Hello);

let Hello = () => {
  console.log("Hello World");
}
undefined
// Example: 5
Hello()

let Hello = () => {
  console.log("Hello World");
}
TypeError: Hello is not a function

In Example 4 and 5 we changed the function to an arrow function. In this case it will behave like a variable. Thats why in Example 4 it is saying undefined and in Example 5 not a function.