在this question中,有一个答案如下:
Number.prototype.roundTo = function(nTo) {
nTo = nTo || 10;
return Math.round(this * (1 / nTo) ) * nTo;
}
这是什么意思?为什么我需要这样做?
nTo = nTo || 10;
答案 0 :(得分:2)
这通常在Javascript中用作默认值。
逻辑OR(||
)如果是truty则返回第一个值,如果第一个值是falsy则返回第二个值。
当函数需要一个未传递的参数时,函数得到的值是undefined
,这是假的。这意味着
var x = parm || default_value;
将使用default_value
,以防parm
未通过。
如果值0
或空字符串""
可接受为参数值,则无效,因为0
且空字符串也是假的。
此外,如果参数的值也可以是undefined
(意味着undefined
应该使用而不是默认值),唯一的解决方案是检查arguments.length
。
答案 1 :(得分:2)
nTo = nTo || 10;
可以实现
的缩写nTo = nTo ? nTo : 10;
反过来又是
的缩写if (nTo) {
nTo = nTo;
} else {
nTo = 10;
}
如果nTo
为非虚假值,则nTo
将分配给nTo
,否则10
将分配给nTo
。
来自http://docs.nodejitsu.com/articles/javascript-conventions/what-are-truthy-and-falsy-values
javascript假值列表
false // obviously
0 // The only falsy number
"" // the empty string
null
undefined
NaN