Home > Article > Web Front-end > What is the difference between let and var in es6
Difference: 1. The scope of the let variable is in the block-level code in which it is defined, while the scope of the var variable is in the function scope that includes it; 2. The let variable cannot be declared repeatedly, and The var variable can be declared repeatedly; 3. Scanning before code execution will initialize the var variable to undefined, while the let variable is not initialized.
The operating environment of this tutorial: Windows 10 system, ECMAScript version 6.0, Dell G3 computer.
let is a newly introduced keyword in ES6 to improve various problems caused by var.
Compared with var, there are roughly the following differences between let and var:
1. Scope
Pass The scope of variables defined by let is in the block-level code where it is defined and the sub-blocks included therein, and variables cannot be added in the global scope.
The scope of a variable defined through var is the function scope or global scope including it.
2. Repeated declaration
#Variables defined by let cannot be declared repeatedly in the same scope. .
If a variable defined by var is declared repeatedly in the same scope, subsequent declarations will be ignored when generating the execution context.
3. Problems such as promotion caused by temporary dead zone
We know that before the code is executed, the var declarations in all domains will be scanned. Variable, initialize it to undefined first, and then execute the code, which is the so-called "boost" phenomenon.
But for variables declared by let, it is different. The scan before the code is executed also "raises" the let variable, but does not set it to undefined. Although the variable defined by let has been promoted, the variable has not been initialized before the code that initializes it is executed. If accessed at this time, a ReferenceError will be set. From the beginning of the code block to execution to the completion of initialization of the let variable, the let variable has been declared but is inaccessible. This period of time is called a temporary dead zone.
【Related recommendations: javascript video tutorial, web front-end】
The above is the detailed content of What is the difference between let and var in es6. For more information, please follow other related articles on the PHP Chinese website!