0

这个问题中,一个答案如下:

Number.prototype.roundTo = function(nTo) {
    nTo = nTo || 10;
    return Math.round(this * (1 / nTo) ) * nTo;
}

这是什么意思?为什么我需要这样做?

nTo = nTo || 10;
4

2 回答 2

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
于 2013-09-29T11:52:37.087 回答
2

这通常在 Javascript 中用于默认值。

逻辑 OR ( ||) 如果为真则返回第一个值,如果第一个为假则返回第二个。当一个函数期望一个未传递的参数时,该函数获得的值undefined是虚假的。这意味着

var x = parm || default_value;

将在未通过default_value的情况下使用。parm

但是,如果该值0或空字符串""可以作为参数值接受,则这将不起作用,因为0空字符串也是虚假的。

此外,如果参数的值也可以undefined(意思undefined应该使用而不是默认值)唯一的解决方案是检查arguments.length.

于 2013-09-29T11:44:11.027 回答