天天看點

關于undefined的含義

undefined是一種類型,javascript常用的類型有:Undefined,Null,Boolean,Number,String。如果一個變量沒定義或者定義後沒初始化,typeof就會傳回"undefined“(注意:有引号的)

參考下面的代碼:

<script language="javascript">
document.write(typeof undefined+"<br>");

var a;
document.write(typeof a+"<br>");

document.write(typeof variable+"<br>");
if(typeof(variable) =="undefined"){
     document.write( "variable is undefined <br>");
}
</script>
           

此處,我們看到,兩個結果都為undefined,即使第undefinedValue2沒有被聲明,依然可以得到輸出.

下面簡單介紹typeof

typeof運算符

對變量或值使用typeof運算符将會傳回下列值之一:
"undefined" 如果變量是Undefined類型的
"boolean" 如果變量是Boolean類型的
"number" 如果變量是Number類型的
"string" 如果變量是String類型的
"object" 如果變量是一種引用類型或者Null類型的
"function" 如果變量是一種function類型的

注意:

1.傳回值為字元串類型.

2.和原始類型比,還差了個null,這個比較特殊,使用typeof(null),傳回的是"object",我們将null了解成是object的占位符.

3.對未聲明的變量使用其他操作符,都會引起錯誤,因為其他運算符隻能運作于已聲明的變量上.

4.如果函數沒有明确的傳回值,則函數的傳回值也是undefined

5.值undefined并不等同于未定義的值.但typeof運算符并不能真正區分這兩種值.

undefined:   代表一切未知的事物,啥都沒有,無法想象,代碼也就更無法去處理了。

                     注意:typeof(undefined) 傳回也是 undefined。 可以将undefined指派給任何變量或屬性,但并不意味了清除了該變量,反而會是以多了一個屬性。

null:            有那麼一個概念,但沒有東西。無中似有,有中還無。雖難以想象,但已經可以用代碼來處理了。

                     注意:typeof(null)傳回object,但null并非object,具有null值的變量也并非object。

boolean:      是就是,非就非,沒有疑義。對就對,錯就錯,絕對明确。既能被代碼處理,也可以控制代碼的流程。

number:      線性的事物,大小和次序分明,多而不亂。便于代碼進行批量處理,也控制代碼的疊代和循環等。

                     注意:typeof(NaN)和typeof(Infinity)都傳回number 。 NaN參與任何數值計算的結構都是NaN,而且 NaN != NaN 。

                      Infinity / Infinity = NaN 。

繼續閱讀