为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 Number.isNaN('abc') 结果为 false?

为什么 Number.isNaN('abc') 结果为 false?

慕姐8265434 2023-07-20 11:04:40
无法找到此问题的确切原因。我知道 isNaN 尝试将值解析为数字,但是当我尝试在“abc”上运行 Number.parseInt 或 Number.parseFloat 时,它给我“NaN”,但当我实际运行 isNaN 函数时,它给我“false”。我知道有更好的方法来检查某物是否是数字,例如 Number.isFinite( ),但在这种情况下,我试图了解 isNaN 是如何工作的。console.log(Number.parseInt('abc'));console.log(Number.parseFloat('abc'));console.log(Number.isNaN('abc'));
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

NaN是一个特殊的数值Number.isNaN验证传入的值是否等于NaN,因为“正常”比较不起作用(NaN == NaN根据false定义)。

与其他一些方法不同,Number.isNaN不执行类型转换。是一个字符串值,因此它不能是。'abc'NaN

该规范定义Number.isNaN为:

  1. 如果 Type( number ) 不是 Number,则返回false

  2. 如果数字NaN,则返回true

  3. 否则,返回false.


请注意,还有全局isNaN函数,其行为有所不同:如果您给它一个不是数字类型的值,它会在进行检查之前将其转换为数字类型。这isNaN('abc')true因为如果您'abc'使用默认的字符串到数字转换来转换为数字,您会得到NaN; 而是Number.isNaN('abc')因为false它不进行这种转换。


查看完整回答
反对 回复 2023-07-20
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

这里没有添加任何新内容。


只是想让初学者更清楚一点。


isNaN(value)检查值是否字面意思是“ NaN ”。


如果值为“ NaN ”,isNaN(value)则返回true。


如果value是其他任何内容(例如number、string、undefined、null、Infinity或其他任何内容),isNaN(value)则返回false。


//Examples that Return FALSE

//

console.log(20); // value is 20 - is NOT NaN

console.log(isNaN(20)); // false   


console.log('20'); // value is "20" - is NOT NaN

console.log(isNaN('20')); // false



console.log(23 / 0); // is Infinity - Is NOT NaN

console.log(isNaN(23 / 0)); // false



//Examples that Return TRUE

//


console.log(parseInt('X20')); // is NaN

console.log(isNaN(parseInt('X20'))); // true 


console.log(+'20X'); // is NaN

console.log(isNaN(+'20X')); // true 


console.log(Math.sqrt(-1)); // is NaN

console.log(isNaN(Math.sqrt(-1))); // true 


console.log(7 ** NaN); // is NaN

console.log(isNaN(7 ** NaN)); // true 


console.log(0 * Infinity); // is NaN

console.log(isNaN(0 * Infinity)); // true 


console.log('foo' / 30); // is NaN

console.log(isNaN('foo' / 30)); // true `

正如正确指出的,最好用来Number.isFinite(value)检查value是否是数字。


查看完整回答
反对 回复 2023-07-20
  • 2 回答
  • 0 关注
  • 242 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信