我正在寻找一种替代方法来进行 isNaN 测试
我的原始代码看起来像这样。代码有效,但我注意到 num1 改变了类型,这很难看
// example 1: num1 changes type
num1 = parseInt(str1, 10);
if isNaN(num1){num1=-1;}
我把它改成了这个,但是这个使用了重复的代码
// example 2: duplicate code
if (isNaN(parseInt(str1,10))){num1=-1;}
else {num1=parseInt(str1,10);}
起初我正在考虑添加一个额外的变量来存储 parseInt(str1,10) 但该变量也会改变类型,因此实际上与示例 1 相同。
是否有示例 1 或 2 的替代方案?
通过更改类型我的意思是这个
console.log(typeof(isNaN("123"))); // boolean
console.log(typeof(isNaN("abc"))); // boolean
console.log(typeof(parseInt("123", 10))); // number
console.log(typeof(parseInt("abc", 10))); // number
.
console.log(typeof(Number("123"))); // number
console.log(typeof(Number("abc"))); // number
console.log(Number("123")); // 123
console.log(Number("abc")); // NaN