ホームページ >ウェブフロントエンド >jsチュートリアル >なぜnan === nanがjavascriptでfalseを返すのですか?
javascriptの独特の動作では、NaN === NaN
が開発者を頻繁に困惑させると評価されます。 この記事では、なぜこれが事実であるのかを明確にし、NAN検出のための正しい方法を提供します。
false
を理解しています nan、「Not-a-Number」の略では、無効または未定義の数学操作の結果を意味します。 例は次のとおりです
なぜ不平等?<code class="language-javascript">console.log(0 / 0); // NaN console.log(Math.sqrt(-1)); // NaN</code>浮動小数点算術のIEEE 754標準は、NANがそれ自体を含むものと同等ではないことを決定します。 この設計は、無効な結果の誤った扱いを、まるで有効な数値値であるかのように防止します。 基本的に、NANはエラー条件にフラグを立て、本質的に比較できない。
信頼できるnanチェック
NANを扱うとき、直接比較は失敗します。 代わりに、これらの関数を使用します:
:
このグローバル関数は、値がnanであるか、nanに強制されるかどうかをチェックします:
isNaN()
<code class="language-javascript">console.log(isNaN("abc")); // true</code>
Number.isNaN()
<code class="language-javascript">console.log(Number.isNaN(NaN)); // true</code>を生成します。これは、nanが数値ではなくエラー状態を表しているためです。 NANを正確に検出するには、堅牢で信頼性の高いコードを使用して
またはを使用してください。 ソース
以上がなぜnan === nanがjavascriptでfalseを返すのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。