1、Js資料類型
在Js中,有五種基礎資料型別 (Elementary Data Type):Undefined、Null、Number、String和Boolean。還有一種複雜資料類型Object。Object本質上是由一組無序的名值對組成。Js中不支援自己所建立的任何類型機制,所有值最終都是以上六種類型之一。Undefined類型只有一個值undefined,Null類型只有一個值null,Boolean類型有兩個值true和false。
2、判斷變數的資料類型
可以通過typeof操作符在一定程度上檢測VARIANT 資料型別。typeof是操作符範疇,而不是函數。typeof操作符返回的結果是一個VARIANT 資料型別相應的字串表示形式,如:String類型則返回"string",Boolean類型則返回"boolean",Undefined類型則返回"undefined",Null類型則返回"null"。typeof操作符返回的結果與Js資料類型並不完全一致,一共返回有六種結果,且其與資料類型對應關係如下:
Undefined => "undefined"
Null => "object" (js認為null是是對對象的Null 參考)
Number => "number"
Boolean => "boolean"
String => "string"
Object => "object" (除去函數)
=> "function" (函數)
由此可以看出,完全由typeof操作符來判斷變數的資料類型是不可以的。同時對於Js中的變數,還存在如下情況:
1 var a;2 alert(typeof a); // result: "undefined"3 alert(typeof b); // result: "undefined"
如上例所示,對一個已經定義的變數但未初始化(其實本例中的var a等同於var a=undefined),和一個尚未定義的變數同時typeof的結果都是"undefined",由此也可以看出如果需要判斷VARIANT 資料型別是否是Undefined直接通過typeof操作符也是不嚴謹的。
對於未聲明的變數,如果直接在程式中用到了,除了typeof操作為生命變數外,都會出現錯誤提示,因為變數尚未申明,是不能直接用的。
因此在判斷變數是否為Undefined時,最好還是通過if(typeof varname == "undefined")形式,而不是直接通過if(varname == undefined)形式。