ES6 变量声明
let
let 只能在其作用域内使用
暂时性死区
在没有声明 let
变量之前使用变量,会提示 ReferenceError
错误
只能声明一次 let
变量
const
const
一般用来声明常量,声明的同时必须紧接着赋值它。
const
实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,const
只能保证这个指针是固定的(即总是指向另一个固定的地址),至于它指向的数据结构是不是可变的,就完全不能控制了。因此,将一个对象声明为常量必须非常小心。
const a = [];
a.push('Hello'); // 可执行
a.length = 0; // 可执行
a = ['Dave']; // 报错
其它的声明方式还有
- var
- function
- let
- const
- import
- class