let 命令
作者:互联网
1.
所声明的变量,只在let
命令所在的代码块内有效。
var a = []; for (let i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 6
变量i
是let
声明的,当前的i
只在本轮循环有效,所以每一次循环的i
其实都是一个新的变量,所以最后输出的是6
。你可能会问,如果每一轮循环的变量i
都是重新声明的,那它怎么知道上一轮循环的值,从而计算出本轮循环的值?这是因为 JavaScript 引擎内部会记住上一轮循环的值,初始化本轮的变量i
时,就在上一轮循环的基础上进行计算.
2.暂时性死区
var tmp = 123;
if (true) {
tmp = 'abc'; // ReferenceError
let tmp;
}
3.不允许重复声明
4.为 JavaScript 新增了块级作用域
标签:tmp,变量,一轮,命令,循环,let,声明 来源: https://www.cnblogs.com/1024L/p/15334035.html