這篇文章主要介紹“javascript有沒有常量池”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“javascript有沒有常量池”文章能幫助大家解決問題。
目前成都創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管運(yùn)營、企業(yè)網(wǎng)站設(shè)計(jì)、奎屯網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
JavaScript中有常量池;JavaScript的內(nèi)存空間分為棧、堆、池、隊(duì)列,其中池指的就是常量池,常量值是用于存放常量的基本數(shù)據(jù)類型,一般將常量池歸類到棧內(nèi)存中,常量池內(nèi)的數(shù)據(jù)類型占用空間少、大小固定并且頻繁使用,所以系統(tǒng)效率較高。
本教程操作環(huán)境:windows10系統(tǒng)、javascript1.8.5版、Dell G3電腦。
javascript有常量池
JavaScript內(nèi)存空間分為: 棧,堆,池,隊(duì)列。
棧內(nèi)存:用來存儲(chǔ)基本數(shù)據(jù)類型
常量池:用來存放常量 基本數(shù)據(jù)類型(一般把它歸類到棧內(nèi)存中)
堆內(nèi)存:用來存儲(chǔ)引用數(shù)據(jù)類型
當(dāng)變量存儲(chǔ)的基本數(shù)據(jù)類型時(shí),該變量的值則存儲(chǔ)在棧內(nèi)存中
當(dāng)變量存儲(chǔ)的是引用數(shù)據(jù)類型時(shí),該變量值則存儲(chǔ)的是一個(gè)系統(tǒng)分配的內(nèi)存地址,而真正的引用數(shù)據(jù)類型則存放在堆內(nèi)存中,而內(nèi)存地址指向了在堆內(nèi)存中的引用數(shù)據(jù)類型
棧內(nèi)存
以基本數(shù)據(jù)類型之一的數(shù)值型(Number)為例:
當(dāng)我們聲明一個(gè)基本數(shù)據(jù)類型變量時(shí),會(huì)在棧內(nèi)存中存儲(chǔ)變量名和具體值
當(dāng)我們使用console.log(a) 時(shí),我們輸出的是對應(yīng)的值
擴(kuò)展:
堆內(nèi)存
如
let a={1,2,3} let b={m:20}
上圖我們可以看到,變量a1為基本數(shù)據(jù)類型,而變量b,c為引用數(shù)類型,b,c在棧中存放的并不是變量的值,而是系統(tǒng)分配的一個(gè)內(nèi)存引用地址,真正的數(shù)據(jù)存放在堆內(nèi)容中
當(dāng)我們聲明變量來存儲(chǔ)一個(gè)引用數(shù)據(jù)類型時(shí),會(huì)在棧內(nèi)存中生成一個(gè)變量名和一個(gè)具體值,而這個(gè)具體值是系統(tǒng)分配的一個(gè)內(nèi)存引用地址,這個(gè)地址指向了存放在堆內(nèi)存中,我們所創(chuàng)建的引用數(shù)據(jù)類型。當(dāng)我們調(diào)用該變量時(shí),解析器會(huì)根據(jù)變量對應(yīng)的引用地址,引用對應(yīng)的對象。
關(guān)于“javascript有沒有常量池”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。