1. 程式人生 > >Es6系列--const

Es6系列--const

nbsp 個數 作用域 可變 bubuko 數組賦值 ima 代碼 指向

const是用來定義常量,一旦聲明,其值就不能改變

技術分享圖片

const聲明的常量不得改變值。這意味著,const一旦聲明常量,就必須立即初始化,不能留到最後賦值。

技術分享圖片

const的作用域與let相同:只在聲明所在的塊級作用域內有效

技術分享圖片

const變量也不會提升,同樣也存在暫時性死區,只能在聲明後使用。

技術分享圖片

與let一樣,const也不可以重復聲明變量。

技術分享圖片

對於復合類型的變量,變量名不指向數據,而是指向數據所在的地址。const命令只是保證變量名指向的地址不變,並不保證該地址的數據不變,所以將一個對象聲明為常量必須非常小心

這句話的意思就是

技術分享圖片

這樣寫不會有問題但你要這樣寫就會出錯

技術分享圖片

上面的代碼常量foo儲存的是一個地址,指向一個對象。不可變的只是這個地址,既不能將foo指向另一個地址但對象本身是可變的,所以依然能為其添加新屬性。

下面是另一個例子

技術分享圖片

上面的代碼中,常量a是一個數組,這個數組本身是可寫的,但如果將另一個數組賦值給a,就會報錯

Es6系列--const