上QQ阅读APP看书,第一时间看更新
2.1.1 let声明
在ES6中新增了使用let关键字声明变量的方式。let的用法和var类似,所不同的是,使用let声明的变量只在let所在的代码块内有效。例如,在代码块中分别使用var和let声明两个变量,然后在代码块之外调用这两个变量,代码如下:
{ var a = 10; let b = 20; } console.log(a); //10 console.log(b); //报错:b没有定义
由运行结果可以看出,var声明的变量返回了正确的值,而let声明的变量会抛出错误,这就表明使用let声明的变量只在let所在的代码块内有效。
使用let声明变量特别适合于for循环中,循环变量i只在for循环体内有效,在循环体外引用就会抛出错误。示例代码如下:
for (let i = 0; i < 10; i++) { document.write(i); //输出0123456789 } document.write(i); //报错:i没有定义
使用let不允许在相同作用域内重复声明同一个变量。例如,在同一作用域内已经存在某个变量,此时再使用let对它进行声明就会抛出错误,代码如下:
var num = 10; let num = 20; //报错:标识符num已声明