4

JavaScript で isNan() 関数を記述できますか? NaNJavaScript で変数にネイティブisNaN関数がないことを確認できますか?

これはインタビューの質問です。

4

3 に答える 3

13

それが数値であり、それ自体と等しくない場合、それはNaNです。

注:@pstが指摘しているように、数の制約は不要です。NaNJS!=自体の唯一の値のようです。

于 2013-01-02T19:15:56.047 に答える
0

この質問の完全な解決策:

var is_NaN = function(n) {

  return (n !== n);  
}

is_NaN(1/'a'); // true
isNaN(1/'a'); // true

JavaScriptNaNでは、それ自体と等しくないためです。式NaN === NaNは常に戻りますfalse

2番目の解決策:

組み込みisFinite関数を使用できます。isFinite入力が 以外の数値かどうかをチェックますInfinity NaN

isFinite(NaN) // false
isFinite(Infinity) // false
isFinite(1) // true
isFinite(true) // true, because argument true is equal to 1
isFinite('a') // false
isFinite(1/'a') // false
于 2016-04-14T06:15:06.630 に答える