目录
let命令
作用域
ES6 新增了let命令,用来声明变量。它的用法类似于var,但是作用域不同,let命令只在所在的代码块内有效。举个例子:
{
let a = 10
var b = 1
}
console.log(a)//ReferenceError: a is not defined.
console.log(b)//1
上面代码在代码块之中,分别用let和var声明了两个变量a和b。在代码块之外调用这两个变量,结果变量a报错,变量b返回了正确的值。这表明,let声明的变量只在它所在的代码块有效。
所以for循环就很适合用let,而且for循环还有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。例:
for (let i = 0; i < 3; i++) {
let i = 'abc';
console.log(i);
}
// abc
// abc
// abc
上面代码正确运行,并且输出了 3 次abc。这表明函数内部的变量i与循环变量i不在同一个作用域,有各自单独的作用域(同一个作用域不可使用 let 重复声明同一个变量)。

最低0.47元/天 解锁文章
233

被折叠的 条评论
为什么被折叠?



