let&const

2017-11-27  本文已影响0人  文千会

let基本用法

声明变量,类似var,但所声明的变量只在let命令所在代码块内有效

不存在变量提升

暂时性死区(TDZ)

不允许重复声明

const基本用法

const声明一个只读常量,一旦声明常量的值,就不能再更改
const PI=3.1415
PI=3 // 报错
const 声明常量,必须立即初始化,不能留到以后赋值
const PI//报错
const和let 相似,存在TDZ,不存在变量提升,不可重复声明

实质上,const声明的变量,指向的内存地址不变,对于简单类型的数据(数值,字符串,布尔值),值就存在内存地址中,而对于复合类型的数据(对象,数组),内存地址保存的是指针,也就是说 const声明的对象,只可以指向初始化的那个对象,不可指向其他对象了

注:如果你想将对象冻结:可以const foo = Object.freeze({});
绝对冰冻:
var constantize = (obj) => {
Object.freeze(obj);
Object.keys(obj).forEach( (key,i) => {
if( typeof obj[key] === 'object'){
constantize(obj[key]);
}
})
};

上一篇 下一篇

猜你喜欢

热点阅读