国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

JS中的const命令你真懂它嗎

瀏覽:118日期:2024-05-20 15:24:38

const 定義

const聲明一個(gè)只讀的常量 。一旦聲明, 常量的值就不能改變。常量 所謂的常量就是不能改變的值

const PI = 3.1415;PI // 3.1415PI = 3;// TypeError: Assignment to constant variable.

上面代碼表明改變常量的值會(huì)報(bào)錯(cuò)。

const聲明的變量不得改變值,這意味著,const一旦聲明變量,就必須立即初始化,不能留到以后賦值。

我們都知道const一般聲明一個(gè)只讀的常量,聲明之后就不能修改了,并且聲明時(shí)必須初始化

const message = ’hello’message // hello

const message // ❌報(bào)錯(cuò)SyntaxError: Missing initializer in const declaration

const message = ’hello’message =’world’// 報(bào)錯(cuò)TypeError: Assignment to constant variable.

那大家有沒有遇到這樣的情況

const dog = {}dog.name = ’wangcai’dog // {name: 'wangcai'}

奇怪,上面的例子明明改變了變量的值,為什么沒有報(bào)錯(cuò)?

下面我們就探究一下const的本質(zhì)

本質(zhì)

其實(shí)const保證的并不是變量的值不動(dòng),而是變量指向的內(nèi)存地址不得改動(dòng)可能有點(diǎn)抽象,我們來細(xì)細(xì)分析一下const聲明的全過程

const message = ’hello’ js看到變量message后,會(huì)給message分配一個(gè)空房間(內(nèi)存空間) 看到等號(hào)右側(cè)的字符串‘hello’時(shí),會(huì)立馬給它安排另一個(gè)房間,并把‘hello’放到這個(gè)房間 js會(huì)拿小本本抄下這個(gè)房間的房間號(hào)(內(nèi)存地址) 把這個(gè)房間號(hào)放到message這個(gè)房間里面,這時(shí)message中存儲(chǔ)的就是hello字符串的存儲(chǔ)地址(即指針)

當(dāng)我們?cè)俅钨x值時(shí)

message = ’word’

js會(huì)將存儲(chǔ)‘word’字符串的地址賦給message,而message又是用const定義的變量,不可以改變變量里存儲(chǔ)的內(nèi)存地址,這時(shí)就會(huì)❌報(bào)錯(cuò)

而當(dāng)遇到下面這種情況

const dog = {}dog.name = ’wangcai’dog // {name: 'wangcai'}

則可以理解為dog中存儲(chǔ)的是對(duì)象的房間號(hào)(內(nèi)存地址)dog.name= ’wangcai’,在給對(duì)象添加屬性的過程,并沒有改變這個(gè)地址,所以結(jié)果正常顯示

劃重點(diǎn)const保證的并不是變量的值不動(dòng),而是變量指向的內(nèi)存地址不得改動(dòng)

到此這篇關(guān)于JS中的const命令你真懂它嗎的文章就介紹到這了,更多相關(guān)JS const命令內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 罗田县| 谷城县| 乐平市| 水城县| 岳阳县| 曲沃县| 博白县| 普定县| 普陀区| 元氏县| 冀州市| 济南市| 永福县| 邮箱| 宾阳县| 武乡县| 汨罗市| 乳山市| 锡林浩特市| 泉州市| 南木林县| 南皮县| 永福县| 锦州市| 临高县| 河北省| 安义县| 云龙县| 定安县| 含山县| 洱源县| 凤阳县| 延寿县| 昌都县| 丹棱县| 宁德市| 通渭县| 收藏| 普兰县| 海阳市| 武城县|