Javascript 短缺 (num>0)?num:0



有没有办法用javascript写(num>0)?num:0更短?

原因是变量尚未定义num在上述情况下需要计算两次。

用另一个词来说,a和b是已知的。我想写(a>b)?(a-b):0更短。这在javascript中可能吗?谢谢。

编辑后回答:

我可能会继续做减法,然后做测试:

num = a - b;
if (num < 0) {
    num = 0;
}

num = a > b ? a - b : 0;

。似乎也完全没问题。

请记住,在出现问题之前进行优化("过早优化")通常是浪费时间。这通常是正确的,但在 JavaScript 中尤其如此,因为不同的引擎行为不同。

编辑前回答

不,我认为没有更短的方法来写它。

原因是 num 变量尚未定义,在上述情况下需要计算两次。

如果您的意思是num确实是一个计算,那么将其缓存到变量中:

var num = /*...the calculation...*/;
var result = num > 0 ? num : 0;

这个呢:

Math.max(num, 0)

如果num小于则0此表达式将返回 0 ,否则num自身。

最新更新