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
null
と undefined
の比較
undefined
と null
は機能的に重複する部分もありますが、
目的に応じて使い分けることができます最も厳密な意味では、null
は値を表す
意図的に「空白」と定義されていても、undefined
は値が割り当てられていないことを表します。
null
と undefined
は緩やかに等しいが、厳密には等しくない。
疎等価演算子はさまざまな型のオペランドをブール値に強制変換する
null
と undefined
の両方が false
になります。厳密な等価演算子
データ型の異なるオペランドは等しくないと見なされます。
null == undefined
> true
null === undefined
> false
予約済みキーワード null
とは異なり、undefined
は次のプロパティです。
グローバル オブジェクト。これは設計である
従来のブラウザでも
undefined
を完全に上書きします。最新のブラウザでは、
undefined
を非グローバル スコープの識別子として使用し、その値をオーバーライドします。
指定する必要があります。undefined
を識別子として使用しないでください。これは、
予期しない動作を引き起こし、将来のメンテナンス担当者を混乱させる可能性がある
説明します。
理解度をチェックする
typeof null
は何を返しますか。
string
primitive
object
undefined