Javascript : Hoisting and the Temporal Dead Zone

In Javascript we can declare a variable by var keyword (ES5). But in ES6 we can declare a variable by let and const . As we have a lots a difference between var and let/const  but Temporal Dead zone is one of them.

      Let me put an example here

    console.log(test);
    var test;
    test= "I'm a checking";

   is equivalent to
 
    var test;
    console.log(test);
    test= "I'm a checking";

will get the same result.

An indication of this behavior is that both examples will log undefined to the console. If var test; wouldn’t always be on the top it would throw a ReferenceError.
This behavior called hoisting applies to var and also to let/const. As mentioned above, accessing a var variable before its declaration will return undefined as this is the value JavaScript assigns when initializing it.
But accessing a let/const variable before its declaration will throw an error.
The period between entering the variable’s scope and reaching their declaration is called the Temporal Dead Zone – i.e. the period in which the variable isn’t accessible.

Comments

Popular posts from this blog

Unable to load one or more breakpoints in Visual studio.

The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.

The transaction is aborted or Failure while attempting to promote transaction.