首頁 >web前端 >前端問答 >es6中常數可以修改嗎

es6中常數可以修改嗎

WBOY
WBOY原創
2022-04-26 11:33:451791瀏覽

es6中常數不可以修改;es中的常數使用const進行聲明,該關鍵字聲明的常數是唯讀的,一旦聲明,不能修改;因為const常數保證值不能被修改,保證的是常數指向的記憶體位址所保存的資料不能被改變,而基本資料型態常數的值就保存在記憶體位址中。

es6中常數可以修改嗎

本教學操作環境:windows10系統、ECMAScript 6.0版、Dell G3電腦。

es6中常數可以修改嗎

const的定義:是一個只讀的常數,一旦聲明,就不可修改

是否真的不能修改?敲幾段程式碼看一下

由上圖可看到,const定義string常數後,嘗試進行修改,報錯'Assignment to constant variable'再敲幾段程式碼看一下

從上述幾段程式碼可以看出,當const定義的常數為'基本資料型別' 時,不能被修改;當定義的常數為'引用資料型別' 時,我們可以透過其屬性進行資料修改

為何會如此呢?

因為const常數保證值不能被改變,其實保證的是常數指向的記憶體位址所保存的資料不能被修改:

'基本資料型別'的值就儲存在記憶體位址中,所以const定義的'基礎資料型別' 不可被改變。

而'引用數據類型' 指向的內存地址只是一個指針,通過指針來指向實際數據,也就是說,不可被改變的是指針,而不是數據,所以const定義的”引用數據類型的' 常數可以透過屬性來修改值。這就牽扯出堆疊記憶體和堆疊記憶體。

  • 由圖可看出,基本資料型別的變數和值都在'棧記憶體' 中,指向的記憶體位址不可被修改

  • #引用資料型別的變數儲存在'棧記憶體' 中,值儲存在'堆記憶體' 中,透過指標來指向'堆記憶體' 中對應的值,所以,const定義的引用資料型,不可被改變的是'指標' , 所以可以透過屬性來修改值。

【相關推薦:javascript影片教學web前端

#

以上是es6中常數可以修改嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn