let命令
ES6新增了let命令,用来声明变量,类似于var,但是所声明的变量,只在let命所在的代码块内有效。
for循环的计数器,就很适合使用let。
let命令不存在变量提升,它所声明的变量,一定要在声明后才能使用,否则会报错。var可以变量提升。
let不允许在相同作用域内,重复声明同一个变量(一样的变量名)。
const命令
const声明一个只读的常量,一旦声明,常量的值就不能改变。
const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。
const的作用域和let相同:只在声明的块级作用域内有效。
const声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后边使用。
和let一样不可重复声明。
const保证的,并不是变量的值不可以改变,而是变量指向的那个内存地址所保存的数据不得改动。
对于简单类型的数据,如数值、字符串、布尔值,值就保存在变量指向的那个内存地址,因此等同于常量。
但是对于复合类型的数据(主要指对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的,至于它所指向的数据结构是不是可变的,就完全不能控制了。
ES6声明变量的6种方法:
var
function
let
const
import
class