What is block scoping?!
Quite simply, this means a new scope is created between a pair of {}. Unlike the var keyword, the variables declared with let and const can only exist within the innermost block that surrounds them.
In the following example, what do you think will be printed to the console when the code is executed.
    let name = 'Runo';
    {
     let name = 'Tega';
    }
   console.log(name)
The value Runo is printed to the console because the second variable name is not visible outside the block, it simply doesn't exist outside the block.
let & const: Similarities
In this section, we'll look at the similarities between the let and const keywords in different use cases:
Block Scoping
We know that the var keyword is bound to function scope, whereas let and const are
block scoped which means that if you have a set of curly braces {} you have a block scope.
One declaration per scope
This means that let and  const can be used to declare a particular variable only once within its scope, lets see an example to level our understanding:
    let name = "Runo";
    let name = "Tega";
    console.log(name); //error
Same goes for const
   const name = "Runo";
   const name = "Tega";
   console.log(name); //error
Note: the var keyword acts differently, it allows a variable to be declared twice and then it takes the value of the most recent declaration, see the code snippet below:
   var name = "Runo";
   var name = "Tega";
   console.log(name) // Tega
Let & const: Differences
In this section we'll look at the differences between let and const and when to use them.
Variable initialization
const variables must be initialized with a value, but  let variables don't always require an intialization variable.
  const a; //Syntax error
  let a;
Variable reassignment
let variables can be reassigned to another value, whereas const variables cannot. See the following:
   let name = "Runo";
       name = "Tega";
       console.log(name) // Tega
const variables cannot be reassigned, see below:
      const pi = 3.142;
            pi = 3.14; //uncaught typeError 
const should be used to hold variables whose values remain constant throughout the program. It can be used to create variables that hold references to the DOM. 
Summary
The const and let keywords support block scoping (lexical binding) and the const key word is used to declare variables with constant values, whereas the let keyword is used to declare variables whose values can change in the course of programming. The let keyword is a good replacement for legacy ES5 var keyword. 

    
Top comments (0)