JS中連等賦值的個人理解

2021-10-08 23:43:28 字數 437 閱讀 9447

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 咋一看,一臉懵逼,這都什麼玩意.我一開始也是這個想法,不過理解之後發現,不是題目坑,確實自己水平還不到位.本文先介紹理解上述筆試題需要的知識點...