null と未定義

JavaScript には、値が存在しないことを示す方法が複数あります。このページ では、null データ型と undefined データ型という、最も一般的な 2 つの方法について説明しています。

null

null キーワードは、意図的に定義された値の不在を表します。null はプリミティブですが、typeof 演算子は null がオブジェクトであることを返します。 これはエラーで、 古いバージョンからコピーされ、意図せず残された ウェブ全体で想定される動作が損なわれないように未対応

typeof null
> object

変数null として定義できます。 なんらかの時点で割り当てられた値を反映していると想定して、 明示的に存在しない値を指定できます。null を割り当てることもできます。 既存の参照に値を追加して以前の値をクリアします。

undefined

undefined変数に割り当てられたプリミティブ値です。 オペレーションの結果の値に関連付けて、 意味のある値が返されません。たとえば、kubectl の「get」コマンドや ブラウザのデベロッパー コンソールで関数を呼び出します。

function myFunction() {}
> undefined

関数は、return ステートメントの場合に、明示的に undefined を返します。 は値を返しません。

(function() {
    return;
}());
> undefined

nullundefined の比較

undefinednull は機能的に重複する部分もありますが、 目的に応じて使い分けることができます最も厳密な意味では、null は値を表す 意図的に「空白」と定義されていても、undefined は値が割り当てられていないことを表します。

nullundefined緩やかに等しいが、厳密には等しくない。 疎等価演算子はさまざまな型のオペランドをブール値に強制変換する nullundefined の両方が false になります。厳密な等価演算子 データ型の異なるオペランドは等しくないと見なされます。

null == undefined
> true

null === undefined
> false

予約済みキーワード null とは異なり、undefined は次のプロパティです。 グローバル オブジェクト。これは設計である 従来のブラウザでも undefined を完全に上書きします。最新のブラウザでは、 undefined を非グローバル スコープの識別子として使用し、その値をオーバーライドします。 指定する必要があります。undefined を識別子として使用しないでください。これは、 予期しない動作を引き起こし、将来のメンテナンス担当者を混乱させる可能性がある 説明します。

理解度をチェックする

typeof null は何を返しますか。

object
undefined
primitive
string