2009-02-02 91 views
0

將賦值與逗號相結合(可能不應該這樣做),javascript如何確定分配了哪個值?考慮這兩個片段:Javascript逗號運算符

function nl(x) { document.write(x + "<br>"); } 
var i = 0; 
nl(i+=1, i+=1, i+=1, i+=1); 
nl(i); 

和:

function nl(x) { document.write(x + "<br>"); } 
var i = 0; 
nl((i+=1, i+=1, i+=1, i+=1)); 
nl(i); 

第一輸出

1 
4 

而第二輸出

4 
4 

什麼是括號在這裏做什麼?

回答

3

我在這裏混淆了兩件事。第一次調用'nl'是一個帶有四個參數的函數調用。第二個是將逗號評估爲一個參數。

所以,答案:用','分隔的表達式列表的值是value of the last expression

+0

那麼,至少你有一個很好的「這個代碼做什麼」現在的問題。 :) – Shog9 2009-02-02 04:00:52