undefined、null、NaNの違いを知る

4238 ワード

1.従来の解釈では、nullは対象であり、空の値を表し、undefinedも対象であり、定義されていないことを示しています.
 
2.詳細分析
null
本の説明(Javascript権威の手引き)は、Javascriptのキーワードnullは特殊な値で、「無価値」を表しています.nullは、しばしばオブジェクトタイプの特殊な値、すなわち「オブジェクトなし」の値と見なされる.変数の値がnullであると、その値は有効なオブジェクト、配列、数字、文字列、ブール値ではないことが分かります.null対応タイプobject、ブール値false、数字0、文字列"null"
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21vartest = null;  // , objectdocument.write( typeof(test));document.write("<br/>");  // , nulltestdocument.write(test + 'test');document.write("<br/>");  // , 10document.write(test + 10);document.write("<br/>");  // , falseif(test) {   document.write("true");}if(!test) {   document.write("false");}どんな場合にnullに戻りますか?
Dcument.getElemenntById(‘XXX’); 存在しない要素を探して、nullに戻ります.
 
undefined
undefinedはwindowオブジェクトの属性であり、キーワードではありません.本では、宣言されていない変数を使用した場合、または宣言されていますが、まだ与えられていない変数を使用した場合、または存在しないオブジェクト属性を使用した場合、この値を返します.undefined対応タイプundefined、ブール型false、文字列undefined、数字計算結果は必ずNaNです.
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21vartest;   // , undefineddocument.write( typeof(test));document.write("<br/>");  // , undefinedtestdocument.write(test + 'test');document.write("<br/>");  // , NaNdocument.write(test + 10);document.write("<br/>");  // , falseif(test) {   document.write("true");}if(!test) {   document.write("false");}どんな場合にundefinedに戻りますか?いくつかの場面をまとめました.
1.    修正されていないグローバル変数undefinedに直接アクセスします.var x=undefined そのxの値はundefinedです.
2.    宣言されていない変数を使うと、IEの下でエラーが発生し、「xxx」が定義されていません.すでに声明していますが、価値がなく、var xに似ています. alert(x)      undefinedをイジェクト
3.    存在しないオブジェクトの属性を使用しました.
 
1
2
3
4
5varcoffee = {   x:'1',   y:2}alert(coffee.z);上でundefinedはjavascriptのキーワードではないと述べましたので、undefinedという名前の変数を定義できます.以下の通りです.
 
1
2
3
4
5varundefined = 10;  document.write( typeof(undefined));document.write("<br/>")document.write(undefined * 10); 
IEとサーチ犬のブラウザの下で、結果を返します.    number             100
firefoxとchromeの下で、結果を返します.  undefined         NaN
undefinedの変数名は使わないほうがいいです.
 
undefinedを使うシーンです.
ある場面ではundefinedをよく使います.変数の類似性を定義したほうがいいです.
var x=undefinedは、性能を向上させることができます.これはjavascriptエンジンがundefinedを使う時はすべてwindowの対象を遍歴するので、undefined属性を探して、属性を遍歴する過程の中で大量の時間をもたらします.
 
nullとundefinedの比較
null==undefined trueに戻る
null==undefined  falseを返します
 
はい、 undefinedの最適化
私たちはプログラムでundefinedを使う時、実際に使っているのはwindowオブジェクトです. undefined属性は、 windowオブジェクトの属性が多いです. undefined交际する时、windowオブジェクトのを捜索します. undefined属性は時間がかかります.必要に応じてよく使う undefinedのシーンでは、1つの部分を定義することができます. undefined変数
例えば:var undefined;
 
最後に宝玉伯のnullとundefinedに対する解釈を引用します.
値の種類の「虚無」はundefinedで、タイプの「虚無」を引用して、nullを使います.