这个复杂的return语句在javascript中做了什么?

时间:2012-12-26 02:40:22

标签: javascript

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

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

我多年来一直在做日常的javascript,之前从未见过。嘿嘿嘿?

4 个答案:

答案 0 :(得分:14)

它只是小于或等于。也许Ternary operator加上comma operator会让你失望?

这相当于:

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

答案 1 :(得分:2)

仅表示“小于或等于”。

答案 2 :(得分:1)

这意味着如果左手操作数小于 等于几乎是右手操作数(,如果不是全部)语言

答案 3 :(得分:0)

&lt; =表示少或平等。

您发布的完整行以普通英语表示“如果延迟小于已过去,则返回开始(已过去),否则返回d3.timer的值。