JavaScriptのnullとundefinedの比較と違い
1361 ワード
JavaScriptではnullとundefinedといういくつかの結果がよく出ますが、今日はnullとundefinedの定義と違いを詳しく紹介します.
nullは名前から大体分かります.つまり空です.jsで変数がこのように定義されるとvar flags=nullとなりますが、この時flagsは空の値です.これを印刷してもnullです.
undefinedは未定義を表しています.例えば、var flags.そしてflagsをプリントアウトします.この時flagsの結果はundefinedです.
ですから、両者の違いはもう一つは定義されていますが、空です.もう一つは定義されていません.どのような類似ですか?
例を見てみます.
ここで注意したいのは、null==undefinedの結果はtrueで、null==undefinedの結果はfalseです.
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です.