gpt4 book ai didi

javascript - javascript 中 isNaN 和 Number.isNaN 的混淆

转载 作者:可可西里 更新时间:2023-11-01 02:31:24 28 4
gpt4 key购买 nike

我对 NaN 的工作原理感到困惑。我执行了 isNaN(undefined) 它返回了 true 。但是,如果我将使用 Number.isNaN(undefined),它将返回 false。那么我应该使用哪一个。还有为什么结果会有这么大的差异。

最佳答案

引用自ponyfoo article on numbers in ES6 :

Number.isNaN is almost identical to ES5 global isNaN method. Number.isNaN returns whether the provided value equals NaN. This is a very different question from “is this not a number?”.

所以 isNaN 只是检查传递的值是否不是数字或不能转换为数字。另一方面,Number.isNaN 只检查值是否等于 NaN(尽管它使用与 === 不同的算法)。

例如字符串'ponyfoo'不是数字,不能转换成数字,但它不是NaN

例子:

Number.isNaN({});
// <- false, {} is not NaN
Number.isNaN('ponyfoo')
// <- false, 'ponyfoo' is not NaN
Number.isNaN(NaN)
// <- true, NaN is NaN
Number.isNaN('pony'/'foo')
// <- true, 'pony'/'foo' is NaN, NaN is NaN

isNaN({});
// <- true, {} is not a number
isNaN('ponyfoo')
// <- true, 'ponyfoo' is not a number
isNaN(NaN)
// <- true, NaN is not a number
isNaN('pony'/'foo')
// <- true, 'pony'/'foo' is NaN, NaN is not a number

关于javascript - javascript 中 isNaN 和 Number.isNaN 的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33164725/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com