你可以这样做:
a = a || 0
…将从任何“falsey”值转换为0 。
“错误”的价值是:
false
null
undefined
0
"" (空string)
NaN (不是数字)
或者,如果你喜欢:
a = a ? a : 0;
…将具有与上述相同的效果。
编辑:
如果意图testing的不仅仅是NaN ,那么你可以做同样的事情,但是先做一个toNumber转换。
a = +a || 0
这使用一元+运算符来尝试将a转换为数字。 这有附加的好处,如数字string'123'转换为数字。
唯一的意外的事情可能是如果有人传递一个可以成功转换为数字的数组:
+['123'] // 123
这里我们有一个数组,它有一个数字string的单个成员。 它将成功转换为一个数字。
写你自己的方法,并在任何你想要的数值使用它:
function getNum(val) { if (isNaN(val)) { return 0; } return val; }
使用双撇号(双位不) – 在JavaScript中做一些有趣的事情。 例如,你可以使用它来代替Math.floor ,甚至可以作为parseInt("123", 10)的替代方法! 在networking上已经讨论了很多,所以我不会为什么在这里工作,但是如果你感兴趣的话: JavaScript中的“d