2

这个对吗?b 赋值是否属于已经声明的 b?

var a, b;
//...later
a = 3, b = a * 4;

还是需要这样?

var a, b;
//...later
a = 3; 
b = a * 4;
4

1 回答 1

4

引用MDN

逗号运算符评估其每个操作数(从左到右)并返回最后一个操作数的值。

因此,b = a * 4将在之后进行评估a = 3,结果为 12。

两个版本之间的区别在于后者包含一个附加语句。如果您在 REPL 中一个接一个地键入这些语句,您将看到该a = 3语句被评估为 3,这在以前的版本中不会发生。

于 2015-12-20T22:14:53.970 回答