2011-02-07 342 views

回答

88

就做这样的事情

value = value < 0 ? 0 : value; 

if (value < 0) value = 0; 

value = Math.max(0, value); 
+1

快速JSPerf示值=值<0? 0:值;在顶部http://jsperf.com/negatives-to-zero – Skeep 2014-08-19 08:20:55

+2

我最喜欢`Math.max`,因为它只需要引用`value`一次 – 2017-09-15 11:05:51

26

我想你可以使用Math.max()

var num = 90; 
num = Math.max(0,num); // 90 

var num = -90; 
num = Math.max(0,num); // 0 
+0

这个应该是我认为的可接受的答案。只是说...... :) – ksugiarto 2015-06-30 07:28:53

2

x < 0 ? 0 : x完成这项工作。

4

如果你要聪明一点:

num = (num + Math.abs(num))/2; 

然而,Math.max或有条件的经营者会更理解。
此外,这对于大量数据具有精度问题。

0

我不相信这样的函数存在与本地数学对象。如果你需要使用它,你应该编写一个脚本来填写函数。

3
Math.positive = function(num) { 
    return Math.max(0, num); 
} 

// or 

Math.positive = function(num) { 
    return num < 0 ? 0 : num; 
}