在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ var a=5;a=6;a的地址變了沒(méi)有???

var a=5;a=6;a的地址變了沒(méi)有???

var a=5;a=6;a的地址變了沒(méi)有???

回答
編輯回答
笨笨噠

javascript沒(méi)有地址的概念啊。

2017年7月25日 17:21
編輯回答
葬愛(ài)

js層面沒(méi)有地址的概念

2017年9月9日 01:08
編輯回答
無(wú)標(biāo)題

可以這么理解,變量是在其作用域中的數(shù)據(jù)空間。如果變量所對(duì)應(yīng)的數(shù)據(jù)是原始類(lèi)型數(shù)據(jù),則保存的是數(shù)據(jù)本身,如果是引用類(lèi)型的數(shù)據(jù),則保存的是數(shù)據(jù)在堆內(nèi)存中的地址。

如果變量被聲明為常量(const),則其保存的值將不再發(fā)生改變,這個(gè)值是原始類(lèi)型數(shù)據(jù)本身或者引用類(lèi)型數(shù)據(jù)的地址,所以如果常量保存的是一個(gè)對(duì)象,其實(shí)對(duì)象的屬性什么的是可以改變的,只是常量中保存的那一串對(duì)象的地址不能被覆蓋。

2018年9月22日 14:49
編輯回答
選擇

理論上,變了。

2017年4月21日 01:12
編輯回答
默念

答案是“不知道”。

如果這兩段代碼如你所寫(xiě),

var a=5;a=6;

那么沒(méi)變,因?yàn)槟壳叭魏?js 引擎都會(huì)把這段代碼直接優(yōu)化編譯為 var a=6;。

如果 a 先初始化為 5,在后面的程序中一直使用這個(gè) 5。然后在某一步又被重新賦值為 6。 那么 a 的地址變了嗎?

這也得分情況,如果是在一個(gè)短小的函數(shù)中,也許 a 根本就沒(méi)有內(nèi)存地址,而是直接在寄存器里面進(jìn)行運(yùn)算。

即使 a 在內(nèi)存中分配,也不能保證 a 的地址是不變的,因?yàn)樵?GC 階段要進(jìn)行新生代內(nèi)存區(qū)域交換和老生代內(nèi)存碎片整理。

至于通常用來(lái)對(duì)比 varconst 的說(shuō)法,“const 只是保證了內(nèi)存地址不變,而不能保證引用的數(shù)據(jù)不變”,這個(gè)只是民間的說(shuō)法,規(guī)范里面從來(lái)沒(méi)有這么說(shuō)。之所以這么說(shuō),是使用了 C++ 的概念來(lái)說(shuō)明 const 的常量性質(zhì)。

如果從 JavaScript 使用者的角度將,我們可以認(rèn)為 const 定義的變量(常量)地址指向是不變的,但是如果從引擎和底層的角度講,我們不能想當(dāng)然的認(rèn)為常量的地址是不變的。

2018年2月8日 03:58