var a =
var b = a;
a.x = a =
console.
log(a.x)
;//undefined
console.
log(b.x)
;//
如上,a.x 是 undefined , b.x 是 。
為什麼會這樣呢,我個人理解是這樣的。
先把 的記憶體位址看作 位址e , 的記憶體位址看作 位址f
瀏覽器在看到 a.x = a = 這條語句 ,
就已經確定好了a當時指向的位址是 位址e,在位址e中多了x ,被a.x 指向
然後從右到左執行, 把 a 的位址指向 位址f, 位址e中的 x 指向了 位址f
所以,a的指向位址是 位址f, , 由於b是指向位址e的,b就有了位址e中的x ,
js連等賦值
賦值前 賦值後 運算子優先於 賦值運算,先建立 a.x是乙個位址,a也是乙個位址,a.x建立後,也就有了b.x,它們是同乙個位址 js賦值是右結合的,從右邊開始向左邊賦值,先將賦值給位址a,再將賦值給位址a.x 其實也是b.x,它們是同乙個位址 另乙個解釋 解析器在接受到 a.x a 這樣的語句後,...
JS連等賦值的坑
關於js連等賦值有個經典的筆試題 var a var b a a.x a console.log a.x undefined console.log b.x 咋一看,一臉懵逼,這都什麼玩意.我一開始也是這個想法,不過理解之後發現,不是題目坑,確實自己水平還不到位.本文先介紹理解上述筆試題需要的知識點...
JS連等賦值的坑
關於js連等賦值有個經典的筆試題 var a var b a a.x a console.log a.x undefined console.log b.x 咋一看,一臉懵逼,這都什麼玩意.我一開始也是這個想法,不過理解之後發現,不是題目坑,確實自己水平還不到位.本文先介紹理解上述筆試題需要的知識點...