在JavaScript中解析值时,是否可能以某种方式返回0而不是NaN ?
如果是空字符串,parseInt返回NaN。
是否有可能在JavaScript中做这样的事情来检查NaN?
var value = parseInt(tbb) == NaN ? 0 : parseInt(tbb)
或者可能有另一个函数或jQuery插件可以做类似的事情?
在JavaScript中解析值时,是否可能以某种方式返回0而不是NaN ?
如果是空字符串,parseInt返回NaN。
是否有可能在JavaScript中做这样的事情来检查NaN?
var value = parseInt(tbb) == NaN ? 0 : parseInt(tbb)
或者可能有另一个函数或jQuery插件可以做类似的事情?
当前回答
你可以有非常干净的代码,我有类似的问题,我解决它使用:
var a="bcd";
~~parseInt(a);
其他回答
一个仍然允许使用基数的辅助函数
function parseIntWithFallback(s, fallback, radix) {
var parsed = parseInt(s, radix);
return isNaN(parsed) ? fallback : parsed;
}
你可以有非常干净的代码,我有类似的问题,我解决它使用:
var a="bcd";
~~parseInt(a);
同样地,为什么不编写一个函数并在任何需要的地方调用它呢?我假设它是表单字段执行计算的入口。
var Nanprocessor = function (entry) {
if(entry=="NaN") {
return 0;
} else {
return entry;
}
}
outputfield.value = Nanprocessor(x);
// where x is a value that is collected from a from field
// i.e say x =parseInt(formfield1.value);
这样做有什么不对?
var s = '';
var num = parseInt(s) || 0;
当不与布尔值一起使用时,逻辑OR ||操作符如果可以计算为true,则返回第一个表达式parseInt(s),否则返回第二个表达式0。parseInt(")的返回值是NaN。NaN的值为false,因此num最终被设置为0。
var value = isNaN(parseInt(tbb)) ? 0 : parseInt(tbb);