今天浏览d3 source code,我看到了以下行:

return delay <= elapsed ? start(elapsed) : d3.timer(start, delay, time), 1;

我已经做了多年的javascript多年,以前从未见过。怎么了

最佳答案

它只是小于或等于。也许Ternary operatorcomma operator结合在一起会使您失望吗?

这等效于:

if (delay < elapsed) start(elapsed);
else if (delay === elapsed) start(elapsed);
else {
  d3.timer(start, delay, time);
}
return 1;

10-06 00:42