LET, CONST and TEMPORAL DEAD ZONE (TDZ);

Shahid Bugti
2 min readDec 20, 2023

--

In JavaScript hoisting of variables declared with “var” is Popular and well known among JavaScript developers.

ES6 Came with two new keywords for variable declaration those are “let” and “const”, unlike “var” declaration the variables declared with “let” and “const” are not accessible before declaration,

console.log(name);
var name = "Shahid"; //undefined


console.log(name);
let name = "Shahid"; //Uncaught ReferenceError

Due to this many of developers were lead to the concept that “let” and “const” declaration are not hoisted.

IS THIS CONCEPT TRUE ?

To Understand the answer first you have to understand what Hoisting is?

HOISTING:

The allocation of memory to variable before exicuting a single line of code is called hoisting.

As you can se the variables declared with “var” and “ let” both are allocated memory and one which is declared with “var ”is stored in Global space while the one declared with “ let ” is stored in a seprate space.

Now You have got the answer that the concept ( “let” and “const” declaration are not hoisted.”) is Incorrect.

TEMPORAL DEAD ZONE (TDZ):

If “let” and “const” declaration are hoisted than why they are not accessible before their declaration? the answer of this depends on concept of TDZ.

“ Time period between Hoisting of a variable and Initializing it with value is Known as Temporal Dead Zone , TDZ”.

console.log(name);
//Temporal dead zone
//Temporal dead zone
//Temporal dead zone
//Temporal dead zone
//Temporal dead zone
//Temporal dead zone
//Temporal dead zone
//Temporal dead zone
let name = "Shahid";

Thanks For taking the time to explore this Article

Lets Connect on LinkedIn

www.linkedin.com/in/muhammad-shahid-bugti-2a7b43276

--

--