NaN表示“非数字”是JS中的一个值,该值是将数字转换或执行为非数字值的运算结果,因 此结果为NaN
let a;
console. log(parselnt(‘ abc’ )); // NaN
console.log(parselnt(null)); // NaN
console. log(parselnt(undefined)); // NaN
console. log(parselnt(++a)); // NaN
console. log(parselnt({} * 10)); // NaN
console. log(parselnt(‘abc’ – 2)); // NaN
console.log(parselnt(0 / 0)); // NaN
console.log(parselnt(’10a’ * 10)); // NaN
JS有一个内置的isNaN方法,用于测试值是否为isNaN值,但是这个函数有一个奇怪的行为。
console. log (isNaN()) ; // true
console.log(isNaN(undefined)); // true
console. log(isNaN({})); // true
console. log(isNaN(String(‘a’))); // true
console.log(isNaN(() => { })); // true
所有这些console. log语句都返回true,即使我们传递的值不是NaN。
在ES6中,建议使用Number. isNaN方法,因为它确实会检查该值(如果确实是NaN),或者 我们可以使自己的辅助函数检查此问题,因为在JS中,NaN是唯一的值,它不等于自己。
function checklfNaN(value) { return value !== value; }

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.