一個(gè)面試題

<code>
var a = {
n:1
}
var b = a;
a.x = a = {
n:2
}
console.log(a.x)
console.log(b.x)
</code>
連等賦值為A=B=C;從右往左,所以是C=B,B=A;
所以這段代碼應(yīng)該是這樣執(zhí)行的:全局執(zhí)行上下文創(chuàng)建后,創(chuàng)建變量對(duì)象時(shí),創(chuàng)建一個(gè)變量a 它的值為一個(gè)引用地址的指針,指向n:1
然后創(chuàng)建一個(gè)變量b,它的值為變量a的引用地址指針,此時(shí),a和b是完全一樣的
然后執(zhí)行下面的代碼,按照早先的思路,連等賦值應(yīng)該是從右往左執(zhí)行的,應(yīng)該是n:2這個(gè)值賦給a,然后a賦值給a.x,所以a.x應(yīng)該為n;2,b.x應(yīng)該為undefined;實(shí)際是錯(cuò)的。
先創(chuàng)建一個(gè)新的引用地址 n:2
.運(yùn)算符是優(yōu)先于=運(yùn)算符的,所以先聲明一個(gè)a的屬性x,為undefined,此時(shí)a是指向b的,所以b現(xiàn)在也擁有一個(gè)x屬性為undefied,然后將a變量的引用地址指針改變?yōu)閚:2,因?yàn)閍的變量引用地址指針變成了n:2,新的引用地址當(dāng)中沒有x這個(gè)屬性,所以x為undefined.
然后a.x現(xiàn)在指向的是舊的引用地址,也就是b的引用地址中的x,然后將b.x賦值為n:2。所以最后,a.x應(yīng)該為undefined,b.x為n:2

Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • iOS面試小貼士 ———————————————回答好下面的足夠了------------------------...
    不言不愛閱讀 2,255評(píng)論 0 7
  • 多線程、特別是NSOperation 和 GCD 的內(nèi)部原理。運(yùn)行時(shí)機(jī)制的原理和運(yùn)用場(chǎng)景。SDWebImage的原...
    LZM輪回閱讀 2,131評(píng)論 0 12
  • ———————————————回答好下面的足夠了---------------------------------...
    恒愛DE問候閱讀 1,846評(píng)論 0 4
  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,655評(píng)論 30 472
  • 在修身方面,最近精進(jìn)很多,究其原因,我找到了一個(gè)精神榜樣,在一個(gè)所有人會(huì)質(zhì)疑一切,所有人也會(huì)相信一切的時(shí)代,我們可...
    我與乞力馬扎羅閱讀 3,965評(píng)論 0 2

友情鏈接更多精彩內(nèi)容