0
結果爲何X = 5,Y = 4
X = Y +(Y = X)* 0
這一行
X = 5 +(4)* 0
爲什麼不? X = 4 +(4)* 0的Javascript順序表達式
var x=4;
var y=5;
x=y+(y=x)*0;
console.log(x);
console.log(y);
鉻控制檯
結果爲何X = 5,Y = 4
X = Y +(Y = X)* 0
這一行
X = 5 +(4)* 0
爲什麼不? X = 4 +(4)* 0的Javascript順序表達式
var x=4;
var y=5;
x=y+(y=x)*0;
console.log(x);
console.log(y);
鉻控制檯
由於y=x
上運行不會奇蹟般地該行的其餘部分之前運行。 JavaScript執行表達式中的每一位,首先是y
,是5
;那麼y = x
來了,它是4
。
另請參見[爲什麼程序的結果是未定義的?](http://stackoverflow.com/q/21979221/1048572)和[引用的Javascript順序](http://stackoverflow.com/q/18495913/1048572 )。在讀取之後,'y'被覆蓋*。 – Bergi