let:聲明變量
const:聲明只讀常量
二者共同點(diǎn):
- 只在代碼塊內(nèi)有效默伍,并且在用let或const聲明之前坎拐,都是TDZ(temporal dead zone)级零,暫時(shí)性死區(qū)秘遏,會(huì)報(bào)錯(cuò)
- 沒(méi)有變量提升
- 不允許重復(fù)聲明
這使得ES6存在塊級(jí)作用域,私有作用域的語(yǔ)法可以丟棄了腻暮,允許在塊級(jí)作用域中聲明函數(shù)屉更,但是環(huán)境導(dǎo)致的行為差異大徙融,所以盡量避免。
const:
const定義對(duì)象瑰谜,保存的地址不可變欺冀,但地址的內(nèi)容可變,所以可給對(duì)象添加方法萨脑、屬性隐轩。
若想將對(duì)象凍結(jié),使用Object.freeze({});
全局對(duì)象的屬性:var命令和function命令聲明的全局變量砚哗,依舊是全局對(duì)象的屬性龙助;另一方面規(guī)定,let命令蛛芥、const命令提鸟、class命令聲明的全局變量,不屬于全局對(duì)象的屬性仅淑。