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

这里的括号是做什么用的?

有帮助吗?

解决方案

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top