为什么使用es6:
变量提升增加了程序在运行时的不可预测性。
语法过于松散,在实现相同的功能时,不同的人可能会写出不同的代码。
1.let关键字
类关键字的特点:
(1):es6新增的用于声明变量的关键字。let声明的变量只在所处的块级作用域内有效。
在一个大括号中使用let声明的变量才具有块级作用域,var是不具有这个特点的。
if (true) {
let a = 1
console.log(a);
}
console.log(a);
let关键字的好处:防止循环变量变成全局变量。
看如下代码:
for(let i = 0; i < 2; i++) {
}
console.log(i);
(2)let声明的变量没有变量提升。只能先声明后使用。
console.log(a);
let a = 100
(3)let声明的变量具有暂时性死区特性
在大括号内部使用了let关键字声明变量a之后,变量a就和这个大括号内部的这个块级作用域绑定起来了,a就与外部var定义的这个变量无关。
var a = 100
if(1) {
console.log(a);
let a = 20
}
与(2)中报错相同。