2009-02-02 61 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