どして NaN === NaN
Javascriptでfalse
を返しますか?
> undefined === undefined
true
> NaN === NaN
false
> a = NaN
NaN
> a === a
false
ドキュメントページ で私はこれを見ます:
NaNに対するテスト
等価演算子(
==
および===
)は、NaN
に対して値をテストするために使用できません。代わりにisNaN
を使用してください。
質問に答える参照はありますか?大歓迎です。
厳密な答え:JS仕様 そうと言っている :
- Type(x)が数値の場合、
- XがNaNの場合、falseを返します。
- YがNaNの場合、falseを返します。
有用な回答:浮動小数点数のIEEE 754仕様(浮動小数点のすべての言語で使用されています)は、NaNは決して等しくないことを示しています。
この動作は IEEE-754標準 (この点でJavaScriptの仕様に従っています)で指定されています。
詳細な説明については、 IEEE754 NaN値に対してfalseを返すすべての比較の根拠は何ですか? を参照してください。
NaN===NaN
には同じ値が含まれ、そのタイプはNumber
ですが、同じではありません。 ECMA-262によると、==
または===
にNaN
が含まれている場合、false値が返されます。
ここで詳細ルールを見つけることができます