const
實際上保證的,並不是變量的值不得改動,而是變量指向的那個內存地址(初始化的內容)不得改動。對於簡單類型的數據(數值、字符串、布爾值),值就保存在變量指向的那個內存地址,因此等同於常量。
簡單類型的數據(數值、字符串、布爾值):
const a = 1; //相當於聲明常量(常量一旦聲明就不可以修改)
console.log(a); //1
a=2;//運行時就報錯(對常量變量賦值)
console.log(a); //報錯
但對於復合類型的數據(主要是對象和數組),變量指向的內存地址(初始化的內容),保存的只是一個指針,const
只能保證這個指針是固定的,至於它指向的數據結構是不是可變的,就完全不能控制了。
簡單來說就是不能再將其聲明為其他對象或重新給它賦值,但是可以進行添加修改刪除屬性等
const b = {'name':"lisi"};
console.log(b.name);
添加一個屬性
b.prop = 9;
console.log(b.prop);
delete b.prop
console.log(b.prop);
數組也是和對象一樣的