Using the let statement, you can create Block scoped local variables in JavaScript. The let statement was introduced in the ECMAScript 6 standard of JavaScript.
Before ECMAScript 6, JavaScript had three types of scoping:
- Global scoping
- Functional scoping
- Lexical scoping
To explore let statement in detail, consider the code snippet given below:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| function foo() { | |
| var x = 9; | |
| if (x > 5) { | |
| var x = 7; | |
| console.log("Value of x in if statement = " + x); | |
| } | |
| console.log("Value of x outside if statement = " + x); | |
| } | |
| foo(); |
You will get this output for the above code listing:
In the above listing, variable x is declared using the var statement. Hence, the scope of variable x is a function scope. Variable x inside the if statemnet is same variable x which was created outside the if statement. So, when you modify the value of variable x inside the if statement block, it modifies the value for all references of variable x in the function.
To avoid this, you need block-level scoping, and the let statement allows you to create a block-scoped local variable.
Let’s modify the above code snippet and use the let statement to declare the variable:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| function foo() { | |
| var x = 9; | |
| if (x > 5) { | |
| let x = 7; | |
| console.log("Value of x in if statement = " + x); | |
| } | |
| console.log("Value of x outside if statement = " + x); | |
| } | |
| foo(); |
In the above code snippet, you are declaring scope level local variable x using the let statement. Therefore updating value of variable x inside the if statement will not affect value of variable x outside the if statement.
Read full article on the Infragistics blog
Discover more from Dhananjay Kumar
Subscribe to get the latest posts sent to your email.
Thank u sir for this blog
Is it the same if I change *var* in the beginning of the function to *let*?