null

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

null という値は、意図的にオブジェクトの値が存在しないことを表します。これは JavaScript のプリミティブ値の 1 つであり、論理演算では偽値として扱われます。

試してみましょう

構文

js
null;

解説

null 値は null というリテラルです。 nullundefined のようなグローバルオブジェクトのプロパティではありません。代わりに、 null は識別できないことを表し、変数がオブジェクトを指していないことを示します。 API においては、通常はオブジェクトが返されるところで、関連したオブジェクトがない場合に null がよく渡されます。

js
// foo が存在せず、定義も初期化もされていない場合:
foo; //ReferenceError: foo is not defined
js
// foo が存在しているが、型も値も持たない場合:
var foo = null;
foo; //null

nullundefined の違い

nullundefined をチェックする際は、等価 (==) と 厳密等価 (===) 演算子の違い に注意してください(前者では型変換が行われます)。

js
typeof null; // "object" (歴史的な理由で "null" ではありません)
typeof undefined; // "undefined"
null === undefined; // false
null == undefined; // true
null === null; // true
null == null; // true
!null; // true
isNaN(1 + null); // false
isNaN(1 + undefined); // true

仕様書

Specification
ECMAScript Language Specification
# sec-null-value

ブラウザーの互換性

BCD tables only load in the browser

関連情報