![]() |
1
506
试试这个代码:
用于检查是否 任何 值为NaN,而不仅仅是数字,请参见以下内容: How do you test for NaN in Javascript? |
![]() |
2
128
我刚在书中遇到这种技巧 Effective JavaScript 这很简单: 由于NaN是唯一一个被视为不等于自身的javascript值,因此可以通过检查该值是否等于自身来测试该值是否为NaN:
直到@allsyed评论后才意识到这一点,但这在ECMA规范中: https://tc39.github.io/ecma262/#sec-isnan-number |
![]() |
3
48
使用此代码:
|
![]() |
4
39
对于类型的值
Number
要测试它是否是
对于适用于JS中所有类型的通用方法,我们可以使用以下任何一种: 对于ECMAScript-5用户:
对于使用ECMAScript-6的人:
为了在EcmaScript 5和6中实现一致性,我们还可以使用它 polyfill for Number.isNan
请检查 This Answer 了解更多详细信息。 |
![]() |
5
16
NaN是一个特殊的值,不能像这样测试。我想分享的一件有趣的事情是
这返回真值 只有 对于NaN值,是一种安全的测试方法。当然应该用一个函数包装,或者至少是注释,因为测试同一个变量是否不相等显然没有多大意义,呵呵。 |
![]() |
6
14
你应该使用全球
实例:
我希望这对你有帮助。 |
![]() |
7
12
至于
ES6
,
|
![]() |
8
8
解决问题的方法
所以不是这样:
这样做:
编辑:不过我注意到了另一个问题…传递到
这似乎涵盖了一切。我把它定为比洛达什慢90%。
http://jsperf.com/own-isnan-vs-underscore-lodash-isnan 为了清楚起见,我负责人对“非数字”的文字解释,而Lodash负责计算机文字解释,以检查是否有“Nan”。 |
![]() |
9
7
虽然@chiborg的回答是正确的,但还有很多问题需要注意:
关键是,如果您使用这个方法来验证输入,那么结果将相当自由。
所以,是的,你可以用
|
![]() |
10
6
简单的解决方案!真的非常简单!在这里!有这个方法!
简单用法如下:
例子:
如果您不想使用交替命名的方法,并且希望确保它在全局范围内更可用,那么在实现方面可以采用两种备选路径。 警告 这些解决方案涉及更改本机对象,可能不是您的最佳解决方案。请务必小心,并注意您可能使用的其他库可能依赖于本机代码或类似的更改。
替代实现1:替换本机
|
![]() |
11
5
如果您的环境支持EcmaScript 2015
,那么您可能想使用
问题在于
因此,在ECMA脚本2015支持的环境中,您可能希望使用
|
![]() |
12
4
|
![]() |
13
4
javascript中的nan代表“不是数字”,尽管它的类型实际上是数字。
为了检查变量的值是否为NaN,我们不能简单地使用函数is nan(),因为is nan()存在以下问题,请参见以下内容:
这里真正发生的是myvar被隐式地强制为一个数字:
它实际上是有意义的,因为“a”实际上不是一个数字。但我们真正想要检查的是myvar是否正好是NaN值。 因此isnan()无法帮助您。那我们该怎么办呢? 鉴于NaN是唯一一个被视为与自身不相等的javascript值,因此我们可以使用来检查它与自身是否相等!=
因此得出结论 ,如果变量为真!==本身,那么这个变量的值正好是NaN:
|
![]() |
14
3
node.js开箱即用似乎不支持isnan()。
|
![]() |
15
3
我只想分享另一种选择,它不一定比这里的其他选择更好,但我认为值得一看:
背后的逻辑是除了
我做了一个快速测试,它的性能和
结果
如果你想避免损坏
|
![]() |
16
3
|
![]() |
17
2
看 Mozilla Documentation The global NaN property is a value representing Not-A-Numbe 最好的方法是使用内置函数“is nan()”来检查NaN。所有浏览器都支持这种方式。 |
![]() |
18
2
确切的检查方法是:
|
![]() |
19
2
也可能是这样:
|
![]() |
20
1
根据IEEE754,所有涉及NAN的关系都被认为是错误的,除了!=因此,例如,(a>=b)=false和(a<=b)=false,如果a或b或两者都是NaN。 |
![]() |
21
1
我把这个答案写在另一个问题上
StackOverflow
其他人什么时候检查
看
Mozilla Developer Network
关于
简短回答
只使用
长回答NaN(非数字)是JavaScript中的一个奇怪的全局对象,在某些数学运算失败时,它经常返回。
你想检查一下
找出变量是否为
另一个是
但是为什么这个简短的回答有效呢?让我们来查一下。
当你打电话
在规范中的某个地方,javascript有一个始终为假值的记录,其中包括:
|
![]() |
22
1
中提到了另一个解决方案 MDN's parseFloat page 它提供了一个过滤函数来进行严格的解析
然后你可以用
|
![]() |
23
1
我创造了这个小功能,就像一个魅力。 不是检查似乎是反直觉的NaN,而是检查一个数字。我很肯定我不是第一个这样做的,但我想我会分享。
|
![]() |
24
1
找到另一种方式,只是为了好玩。
|
![]() |
25
1
Marksyzm的回答很好,但不会返回false
我想出了一个
更新: 我注意到这个代码在某些参数上失败了,所以我改进了它。
|
![]() |
26
1
这不优雅。但是在尝试isnan()之后,我得到了另一种解决方案。在这个示例中,我还允许使用“.”,因为我对float进行了屏蔽。您还可以反转此选项以确保不使用任何数字。
这是一个单字符的计算,但是您也可以通过一个字符串来检查是否有任何数字。 |
![]() |
27
1
是 (南& GT;=0) ?……” 我不知道 “。
条件仅在以下情况下执行 真的 . 不在 错误的 . “不” 我不知道 “。 |
![]() |
28
1
规则是:
isnan()函数的问题是,在某些情况下,它可能返回意外的结果:
检查值是否为NaN的更好方法是:
|
![]() |
29
0
只需将结果转换为字符串并与“nan”进行比较。
|
![]() |
30
-1
所以我看到了一些回应, 但我只是用:
|
![]() |
Pbalazs89 · NaN问题-无法在Jquery中显示数字 7 年前 |
![]() |
Jan · 用熊猫的数据填充矩阵。数据帧,跳过NaN 7 年前 |
![]() |
user2614596 · scipy。pdist()返回NaN值 7 年前 |
|
user7055375 · 如何在ruby中检查var是否为NaN? 7 年前 |