NaN の謎: Typeof で「数値」が返されるのはなぜですか?
その名前にもかかわらず、「数値ではありません」(NaN )、この謎の値は数値型の領域に分類されます。この独特の動作は、JavaScript の数値データの内部表現に起因している可能性があります。
NaN は、数値型の制限の外にある特定の値を表します。丸めが必要な数値を含むすべての数値は同様の制約に直面する可能性がありますが、NaN はその特定の指定により特殊なケースとなります。
NaN が数値型であるという明らかな矛盾は、NaN を含む比較を考慮するとさらに興味深いものになります。 。予想に反して、異なる NaN 値は別のものとして扱われ、それ自体と比較した場合でも不等とみなされます。
さらに明確にするために、JavaScript は比較を「シグナリング」または「非シグナリング」のいずれかに分類します。 NaN が関係する場合、シグナリング比較では例外が発生しますが、非シグナリング比較では単に false が返されます。この違いは等価テストと不等式テストで明らかであり、x が「静かな NaN」の場合、x == x は false と評価されます。
最終的には、NaN の数値型としての分類と比較におけるその独特の動作の背後にある理論的根拠になります。これは、JavaScript の基礎となる数値表現と、さまざまな NaN 値を区別するための取り組みに要約されます。これらの微妙な違いを理解することは、効果的な JavaScript プログラミングにとって重要であり、開発者が複雑なデータ型と比較をナビゲートできるようになります。
以上がJavaScript の NaN が「typeof」で「数値」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。