Javascript 为什么赢了';我的if声明中的条件是否正确?

Javascript 为什么赢了';我的if声明中的条件是否正确?,javascript,Javascript,a=[1,2,NaN]; 用于(a的常数项){ 如果(项目===NaN){ console.log(true); } }在javascript中非常有趣。这意味着您可以通过执行if(foo!==foo)来检查NaN。通常情况下,您应该使用函数而不是它,因为它更具可读性。有趣的是,在javascript中。这意味着您可以通过执行if(foo!==foo)来检查NaN。通常情况下,您应该使用函数而不是它,因为它更具可读性。因为NaN是Javascript中唯一不等同于自身的东西。 a=[1,2,

a=[1,2,NaN];
用于(a的常数项){
如果(项目===NaN){
console.log(true);
}

}
在javascript中非常有趣。这意味着您可以通过执行
if(foo!==foo)
来检查NaN。通常情况下,您应该使用函数而不是它,因为它更具可读性。

有趣的是,在javascript中。这意味着您可以通过执行
if(foo!==foo)
来检查NaN。通常情况下,您应该使用函数而不是它,因为它更具可读性。

因为NaN是Javascript中唯一不等同于自身的东西。

a=[1,2,NaN];
用于(a的常数项){
如果(isNaN(项目)){
console.log(true);
}

}
因为NaN是Javascript中唯一不等同于自身的东西。

a=[1,2,NaN];
用于(a的常数项){
如果(isNaN(项目)){
console.log(true);
}

}
这是否回答了您的问题?因为
NaN
等于零,甚至不等于它本身。不要问我为什么:)。NaN===NaN始终返回false。isNaN(NaN)将返回true。虽然问题是询问“为什么”,但我认为这可能更符合实际需要:。然而,这个话题有点老了,我不确定最重要的答案是否提到了通常更可取的答案。这是否回答了你的问题?因为
NaN
等于零,甚至不等于它本身。不要问我为什么:)。NaN===NaN始终返回false。isNaN(NaN)将返回true。虽然问题是询问“为什么”,但我认为这可能更符合实际需要:。然而,这个话题有点老了,我不确定最重要的答案是否有提及,这通常是比较可取的。从逻辑上讲,它有点道理。如果
(foo!==foo)
,那么它显然不是一个数字。我认为南部没有关于它在这个州如何发展的“历史”,这就是为什么它是有意义的。例如,
1/0
为NaN,但当分配给变量时,“历史记录”丢失,因此无法与另一个具有不同“历史记录”的NaN进行比较。从逻辑上讲,这是有意义的。如果
(foo!==foo)
,那么它显然不是一个数字。我认为南部没有关于它在这个州如何发展的“历史”,这就是为什么它是有意义的。例如,
1/0
为NaN,但当分配给变量时,“历史记录”丢失,因此无法与另一个具有不同“历史记录”的NaN进行比较。