资料参考是阮一峰老师写的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使用变量必须初始化
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。