有没有办法在javascript中写(num>0)?num:0
甚至更短?
原因是num
变量尚未定义,在上述情况下需要计算两次。
使用另一个词,a和b是已知的。我想写(a>b)?(a-b):0
甚至更短。这可能在JavaScript中?谢谢。
答案 0 :(得分:1)
编辑后回答::
我可能继续进行减法,然后进行测试:
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;
答案 1 :(得分:1)
这个怎么样:
Math.max(num, 0)
如果num
小于0
,则此表达式将返回0
,否则为num
本身。