有没有办法用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
自身。