很好地總結了一下:
const聲明創建對值的隻讀引用。這并不意味着它擁有的值是不可變的,隻是不能重新分配變量标識符。例如,如果内容是對象,則意味着對象本身仍可以更改。
更簡潔地說:const創建一個不可變的綁定。
換句話說:const與var一樣,為您提供了可變的内存塊,您可以在其中存儲某些内容。但是,const指示您必須繼續引用相同的内存塊–您不能将變量重新分配給不同的内存塊,因為變量引用是恒定的。
要真正使某些内容在聲明後保持不變且不變,您需要使用Object.freeze()
。但是,這很淺,僅适用于鍵/值對。凍結整個對象需要花費更多的精力。以高效的方式重複執行此操作更具挑戰性。
Axel Rauschmayer博士在 _探索ES6中_有const定義:
const
就像let一樣工作,但是您聲明的變量必須立即初始化, 并且其值以後不能更改 。[…]
const bar = 123;
bar = 456; // TypeError: `bar` is read-only
然後他寫道
陷阱:const不會使值不變
const
僅表示變量始終具有相同的值,但并不表示該值本身是不變的。
我對此陷阱感到困惑。有人可以const
用這個陷阱清楚地定義嗎?
以上是真正的電腦專家為你收集整理的關鍵字“ const”不會使值不變。這是什麼意思?的全部内容,希望文章能夠幫你解決所遇到的問題。
如果覺得真正的電腦專家網站内容還不錯,歡迎将真正的電腦專家推薦給好友。
有話要說...