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 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 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.
Leave a Reply