5

関数NaNを使用せずに入力値が正しいかどうかを確認するにはどうすればよいですか?isNaN

4

2 に答える 2

8

ECMAScript 6を使用できる場合は、次のものがありますObject.is

return Object.is(obj, NaN);

それ以外の場合は、 underscore.jsのソース コードからの 1 つのオプションを次に示します。

// Is the given value `NaN`?
_.isNaN = function(obj) {
  // `NaN` is the only value for which `===` is not reflexive.
  return obj !== obj;
};

また、その機能に関する彼らのメモ:

注: これはネイティブの isNaN 関数と同じではなく、変数が未定義の場合に true を返します。

于 2012-04-10T19:00:48.730 に答える
1

入力を数値に変換し、減算がゼロでないかどうかを確認します。

var x = 'value';
var is_NaN = +x - x !== 0; // The + is actually not needed, but added to show
                           // that a number conversion is made.
于 2012-04-10T19:02:39.520 に答える