首頁 >web前端 >前端問答 >javascript有常數池嗎

javascript有常數池嗎

WBOY
WBOY原創
2022-06-16 17:02:402033瀏覽

JavaScript中有常數池;JavaScript的記憶體空間分為堆疊、堆疊、池、佇列,其中池指的就是常數池,常數值是用來存放常數的基本資料型別,一般將常數池歸類到堆疊記憶體中,常數池內的資料型別佔用空間少、大小固定且頻繁使用,所以系統效率較高。

javascript有常數池嗎

本教學操作環境:windows10系統、javascript1.8.5版、Dell G3電腦。

javascript有常數池嗎

javascript有常量池

JavaScript記憶體空間分為:    堆疊,堆,池,佇列。

堆疊記憶體:用來儲存基本資料型別

#常數池:用來存放常數基本資料型態(一般把它歸類到堆疊記憶體中)

堆疊記憶體:用來儲存引用資料型別

當變數儲存的基本資料型別時,該變數的值則儲存在堆疊記憶體中

當變數儲存的是引用資料型別時,該變數值則儲存的是一個系統分配的記憶體位址,而真正的引用資料型別則存放在堆記憶體中,而記憶體位址指向了在堆記憶體中的引用資料型別

堆疊記憶體

以基本資料型別之一的數值類型(Number)為例:

當我們宣告一個基本資料型別變數時,會在堆疊記憶體中儲存變數名稱和具體值

javascript有常數池嗎

當我們使用console.log(a) 時,我們輸出的是對應的值

擴充:

堆記憶體

let a={1,2,3}
let b={m:20}

javascript有常數池嗎

上圖我們可以看到,變數a1為基本資料類型,而變數b,c為引用數類型,b,c在堆疊中存放的並不是變數的值,而是系統分配的一個記憶體引用位址,真正的資料存放在堆疊內容中

#當我們宣告變數來儲存一個引用資料型別時,會在堆疊記憶體中產生一個變數名稱和一個具體值,而這個具體值是系統分配的一個記憶體參考位址,這個位址指向了存放在堆疊記憶體中,我們所建立的引用資料型別。當我們呼叫變數時,解析器會根據變數對應的引用位址,引用對應的物件。

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

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

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