资料参考是阮一峰老师写的ES6教程

let&const命令

let

ES6新增的let命令,使用来声明变量的,就像var一样,但是声明的变量只在let所在的代码块中有效。

e.g

{
    let a = 1;
    var b = 2;
}
a //a is defined
b //2

在使用let或者const可以屏蔽JS产生的变量名提升的问题

什么是变量名提升

变量名提升指的是变量名没有声明就可以访问

e.g

function test() {
    alert(declaredButNotAssigned); // undefined
    var declaredButNotAssigned;
}
test();

以上例子会得到undefined

暂时性死区

如果代码中存在let或者const,在这个代码块中声明的变量形成一个封闭的作用域。凡是在声明之前使用这个变量都会报错

块级作用域

ES5中拥有全局作用域和函数作用域,ES6添加了块级作用域。使用let或者const声明的变量只能在属于命令所在的代码块

在块级作用域中的声明的函数应当写成函数表达式的形式,ES6规定在块级作用中声明的函数应当let看待

const

使用const声明的变量不得改变值,也即是const使用变量必须初始化


JameHou
595 声望10 粉丝

我只想静静地写着代码,和相爱的人平淡的过完一生