js中使用const宣告變數時需要注意
阿新 • • 發佈:2020-07-13
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);
陣列也是和物件一樣的