2015-05-19 62 views
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); 

鉻控制檯

+0

另請參見[爲什麼程序的結果是未定義的?](http://stackoverflow.com/q/21979221/1048572)和[引用的Javascript順序](http://stackoverflow.com/q/18495913/1048572 )。在讀取之後,'y'被覆蓋*。 – Bergi

回答

2

由於y=x上運行不會奇蹟般地該行的其餘部分之前運行。 JavaScript執行表達式中的每一位,首先是y,是5;那麼y = x來了,它是4