Movatterモバイル変換


[0]ホーム

URL:


  1. 開発者向けのウェブ技術
  2. JavaScript
  3. JavaScript リファレンス
  4. 標準組み込みオブジェクト
  5. Number
  6. isNaN()

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。

View in EnglishAlways switch to English

Number.isNaN()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年9月⁩.

Number.isNaN() は静的メソッドで、渡された値が数値型のNaN であるかどうかを判定します。入力が数値型でなかった場合はfalse を返します。元となるグローバルのisNaN() よりも堅牢な版です。

試してみましょう

function typeOfNaN(x) {  if (Number.isNaN(x)) {    return "Number NaN";  }  if (isNaN(x)) {    return "NaN";  }}console.log(typeOfNaN("100F"));// 予想される結果: "NaN"console.log(typeOfNaN(NaN));// 予想される結果: "Number NaN"

構文

js
Number.isNaN(value)

引数

value

NaN かどうか検査される値です。

返値

論理値で、与えられた値が数値で、かつ値がNaN である場合はtrue を返します。そうでなければfalse です。

解説

Number.isNaN() 関数は、NaN と等しいことをチェックする便利な方法を提供します。なお、NaN と等しいことは== 演算子でも=== 演算子でも検査できません。JavaScript の他のすべての値との比較とは異なり、一方のオペランドがNaN であれば、もう一方のオペランドがNaN であってもfalse と評価します。

JavaScript の有効なすべての値の中で、x !== xNaN だけが true になりますので、Number.isNaN(x)x !== x の検査を置き換えることができますが、後者の方が可読性が低くなります。

グローバルのisNaN() 関数とは異なり、Number.isNaN() は強制的に引数が数値に変換される問題の影響をうけません。これにより、通常NaN に変換されるが実際にはNaN ではない値が、安全に渡されます。つまりこの関数は、数値型であり、かつNaN である値が渡されたときのみ、true を返すということです。

isNaN() の使用

js
Number.isNaN(NaN); // trueNumber.isNaN(Number.NaN); // trueNumber.isNaN(0 / 0); // trueNumber.isNaN(37); // false

Number.isNaN() とグローバルの isNaN() の相違点

Number.isNaN() は引数を数値へ変換することを試みないので、数値でないものはすべてfalse を返します。以下のものはすべてfalse になります。

js
Number.isNaN("NaN");Number.isNaN(undefined);Number.isNaN({});Number.isNaN("blabla");Number.isNaN(true);Number.isNaN(null);Number.isNaN("37");Number.isNaN("37.37");Number.isNaN("");Number.isNaN(" ");

グローバルのisNaN() は、引数を数値に変換します。

js
isNaN("NaN"); // trueisNaN(undefined); // trueisNaN({}); // trueisNaN("blabla"); // trueisNaN(true); // false、これは 1 に変換されるisNaN(null); // false、これは 0 に変換されるisNaN("37"); // false、これは 37 に変換されるisNaN("37.37"); // false、これは 37.37 に変換されるisNaN(""); // false、これは 0 に変換されるisNaN(" "); // false、これは 0 に変換される

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-number.isnan

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp