- const聲明一個只讀的常量。一旦聲明,常量的值就不能改變。且const一旦聲明變量,就必須立即初始化,不能留到以后賦值。
- const的作用域與let命令相同:只在聲明所在的塊級作用域內有效。
- const命令聲明的常量也是不提升,同樣存在暫時性死區,只能在聲明的位置后面使用。也與let一樣不可重復聲明。
- const實際上保證的,並不是變量的值不得改動,而是變量指向的那個內存地址不得改動。
- const如果引用的是一個對象,只能保證引用對象的這個指針不變,但對象本身的數據結構是可以改變的。如:
const foo = {}; // 為 foo 添加一個屬性,可以成功 foo.prop = 123; foo.prop // 123 // 將 foo 指向另一個對象,就會報錯 foo = {}; // TypeError: "foo" is read-only