0

将赋值与逗号结合使用时(您可能不应该这样做),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

括号在这里做什么?

4

1 回答 1

3

我在这里混淆了两件事。对“nl”的第一次调用是一个带有四个参数的函数调用。第二个是将逗号评估为一个参数。

所以,答案是:由“,”分隔的表达式列表的值是最后一个表达式的值。

于 2009-02-02T03:53:00.750 回答