1、let与var相比let的特点
(1)let的变量不可以重复声明
例:如果let a = 1;这个时候再let a = 2;就会报错,在一个块级作用域内,let只能声明一次,这就使得当我们使用for循环遍历的时候,如果想在遍历的时候渲染某些按键,比如修改键删除键等等,原先我们用var的时候要想让渲染上去的按键点击事件明确指向我们操作的哪个,不得不用this来执行,但是let的出现,就可以使用let使btn[ i ].onclick = function ( ) { }成为可能.
(2)let的作用域为块级作用域
let作用域为块级作用域,指的是let只在声明let的这一块级作用域内有效。
例:for(){
//此处不是
for(){
let a;//此处是let所在的块级作用域
if(){
//此处let也起作用
}
}
//此处不是
}
(3)let不存在变量提升
变量提升就是指在未声明这个变量之前,就可以使用这个变量,只是没有赋值,但是let不存在变量提升,就是即便在同一个作用域下,如果在声明之前使用了这个变量,也会报错。