ES6中提出了新的变量声明方式let和const,两种变量声明方式都有各自的特点,对两种变量声明方式进行简单的总结。
1、let命令
- 块级作用域
- 没有变量提升
- 暂时性死区
- 不允许重复声明
(1)块级作用域
所声明的变量只在其所在的块级作用域内有效
(2)没有变量提升
所有let声明的变量必须在声明之后使用
(3)暂时性死区
同上代码块内变量必须在声明之后使用
(4)不允许重复声明
不允许使用let在同个作用域内多次声明同个变量
2、const命令
- 声明后的变量不允许修改
- 声明变量的同时必须进行初始化
- 声明的变量只在当前代码块失效,跨模块需要使用export和import
es6规定:
var和function命令声明的全局变量依旧有全局变量的属性,let命令、const命令和class命令声明的全局变量无全局变量的属性。