null: 値がないことを意味します。
未定義: 未宣言の変数を表します。
または宣言されているが値が割り当てられていない変数、
または、存在しないオブジェクトのプロパティ。
== 演算子は、2 つを等しいものとして扱います。 2 つを区別したい場合は、=== または typeof 演算子を使用します。
———————————-曖昧さの境界線——————————————-
JavaScript では、null と unknown はかつて混乱を招くものでした。次の分析は、これをより明確に理解するのに役立ちます (または、より混乱を招きます):
- null はキーワードです。未定義は Global オブジェクトのプロパティです
。 - null はオブジェクト (プロパティやメソッドを持たない空のオブジェクト) です。未定義型の値。次のコードを試してください。
document.writeln(typeof null); //return object
document.writeln(typeof unknown); //return unknown- オブジェクト モデルでは、null オブジェクトを除くすべてのオブジェクトは Object またはそのサブクラスです。
document.writeln(null instanceof Object); //return false-null 「等しい値 (==)」は未定義ですが、「一致する値 (===)」は未定義です:
document.writeln(null == unknown); //return true
)
; //return false - null と unknown はどちらも操作中に false に型変換できますが、false と等価ではありません。
true、trueを返す
document.writeln(null==false); // false を返す
document.writeln(unknown==false); // false を返す