这是javascript逗号运算符的情况

时间:2016-03-19 15:19:40

标签: javascript

请参阅d3.js的this代码

if (y1 < y0) t = y0, y0 = y1, y1 = t;

comma operator有关,在返回/分配最后一个值或等效于

的意义上
if (y1 < y0) {
  t = y0;
  y0 = y1;
  y1 = t;
}

我更担心,依靠操作顺序在这里发生任何棘手的事情。

1 个答案:

答案 0 :(得分:0)

是的,第一个代码段使用逗号运算符,两个代码段都是等效的,因为逗号运算符从左到右进行求值。

在您的代码段中使用逗号运算符将多个分配放入单个语句中,因此它们都受前面的if和几个条件的约束可以保存字符({})。

不确定这是否值得手动操作,但是缩放器通常会进行这种优化(并且它会增加)