ES6 中新增加了 let 和 const 两个命令,let 用于定义变量,const 用于定义常量。两个命令与原有的 var 命令所不同的地方在于,let, const 都是块级作用域,其有效范围仅在代码块中
//var
if(ture){
var a = 'varA';
}
console.log(a);//varA
//let
if(true){
let b = 'letA';
}
console.log(b);//undefined
定义常量,const
声明创建一个值的只读引用。但这并不意味着它所持有的值是不可变的,只是变量标识符不能重新分配。例如,在引用内容是对象的情况下,这意味着可以改变对象的内容(例如,其参数)。
//const
const c={d:1,e:3};
c.e = 5;
console.log(c);//{d:3,e:5}
const f=7;
console.log(f);//7
f=9;//Uncaught TypeError: Assignment to constant variable.
常量 c 中的内容定义后,再进行修改依然有效,原因是对于对象类型的使用是指针式引用,常量只是指向了对象的指针,对象本身的内容依然可以被修改,f 则无法被修改