JavaScriptのnullとundefinedの比較と違い


JavaScriptではnullとundefinedといういくつかの結果がよく出ますが、今日はnullとundefinedの定義と違いを詳しく紹介します.
nullは名前から大体分かります.つまり空です.jsで変数がこのように定義されるとvar flags=nullとなりますが、この時flagsは空の値です.これを印刷してもnullです.
undefinedは未定義を表しています.例えば、var flags.そしてflagsをプリントアウトします.この時flagsの結果はundefinedです.
ですから、両者の違いはもう一つは定義されていますが、空です.もう一つは定義されていません.どのような類似ですか?
例を見てみます.
var flag1;
		var flag2=null;
		console.log("flag1:"+flag1);
		console.log("flag2:"+flag2);
		console.log("flag1==null?"+(flag1==null));
		console.log("flag1==undefined?"+(flag2==undefined));
		//”==” ”===”    ,          ,               。
		console.log("flag1==flag2?"+(flag1==flag2));
		console.log("flag1===flag2?"+(flag1===flag2));
		console.log("flag1==flag2?"+(flag2=="null"));
		console.log("flag1==flag2?"+(flag1=="undefined"));
実行結果は:
flag1:undefined
flag2:null
flag1==null?true
flag1==undefined?true
flag1==flag2?true
flag1===flag2?false
flag1==flag2?false
flag1==flag2?false
ここで説明したいのは、=に==に対する違いです.1、string、numberなどの基礎タイプに対して、==と=は区別がある1)のタイプが違っています.==を比較すると、「同じタイプになった後の値」は「値」が等しいかどうかを見ます.==がタイプが違っていたら、その結果は同じタイプではないです.Aray、Objectなどの高級タイプに対して、==と==は区別なく「ポインタアドレス」を比較します.3、基礎タイプと高級タイプ、==と=は違います.一つは、値とタイプが完全に等しいかどうかを判断することです.
ここで注意したいのは、null==undefinedの結果はtrueで、null==undefinedの結果はfalseです.