7

NaN、オブジェクト、またはプリミティブとは何ですか?

NaN - 非数

4

3 に答える 3

11

プリミティブです。いくつかの方法で確認できます。

  • typeof NaN「オブジェクト」ではなく「数」を与える。

  • プロパティを追加すると、消えます。NaN.foo = "hi"; console.log(NaN.foo) // undefined

  • NaN instanceof Numberfalse を返します (ただし、これが数値であることはわかっているため、プリミティブでなければなりません)。

NaN がオブジェクトであることは実際には意味がありません。なぜなら、 のような式は0 / 0結果が になる必要がありNaN、数学演算は常にプリミティブになるからです。NaN をオブジェクトとして持つことは、偽の値として機能しないことを意味し、場合によってはそうします。

于 2012-05-08T12:32:22.260 に答える
5

NaNプリミティブな Number 値です。12などと同じです。

于 2012-05-08T12:23:26.050 に答える
1

NaNは、グローバルオブジェクトのプロパティです。

NaNの初期値はNot-A-Numberです—Number.NaNの値と同じです。最近のブラウザでは、NaNは構成不可能で書き込み不可能なプロパティです。そうでない場合でも、オーバーライドしないでください。

プログラムでNaNを使用することはかなりまれです。これは、数学関数が失敗した場合(Math.sqrt(-1))、または数値を解析しようとしている関数が失敗した場合(parseInt( "blabla"))の戻り値です。

参照

于 2012-05-08T12:29:13.783 に答える