let和const的區別

let和const的區別

let與const都是隻在聲明所在的塊級作用域內有效
let用來定義變量,無論是不是嚴格模式下,聲明未初始化的時候,都不會報錯,和var作用一樣,返回undefined
const用來定義常量,而且聲明時必須初始化,否則報錯

const不能修改定義的常量的值 但是可以修改常量的屬性值,例如:
const a = {b: 9};
a.b = 1;
console.log(a);
因爲對於複合類型的變量,如數組和對象,變量名不指向數據,而是指向數據所在的地址。
const命令只是保證變量名指向的地址不變,並不保證該地址的數據不變,所以可以修改const定義的數組或者對象的數值;
也可以通過Object.freeze(name)方法凍結這個常量;例如Object.freeze(a);這時候a的屬性值就不能隨意更改了

有意思的是:
var let = 1; 在嚴格模式下報錯,非嚴格模式下,打印let是1
const let = 1;在不在嚴格模式下都會報錯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章