2.6 原始類型
ECMAScript有5種原始類型(primitive type),即Undefined、Null、Boolean、Number和String。ECMAScript提供了typeof來判斷值的類型。
1、typeof運算子:
複製代碼 代碼如下:var sTemp="test string";
alert(typeof sTemp);//outpus "string"
alert(typeof 95);//outpus "number"
typeof運算子傳回值只有5種,分別為:如果變數是Undefined型返回"undefined",如果變數是Boolean型返回"boolean",如果變數是Number型返回"number",如果變數是String型返回"string",如果變數是一種參考型別或Null類型返回"object"。
2、Undefined類型
Undefined類型只有一個值,即undefined。當聲明的變數未初始化和函數無明確的傳回值時該變數的預設值和函數的傳回值都是undefined。需要注意的是值undefined並不同於未定義的值,但typeof不區分這兩種值。參考下面的代碼: 複製代碼 代碼如下:var oTemp;
alert(typeof oTemp); //outpus "undefined"
alert(typeof otemp2); //outpus "undefined"
alert(oTemp==undefined); //outpus "true"
alert(oTemp2==undefined); //causes error
function testFunc(){
//
}
alert(testFunc() == undefined); //outpus "true"
3、Null類型
Null也是只有一個值的類型,它只有一個專用值null。值undefined實際不是從值null派生來的,因此ECMAScript把它們定義為相等。
1 alert(null == undefined); //outpus "true"
儘管這兩個值相等,但它們的含義不同。undefined是聲明了變數但未對其初始化時的值,null則用於表示尚未存在的對象。
4、Boolean類型
Boolean有兩個值true和false
5、Number類型
Number可以表示32位整數,還可以表示64位浮點數,不同進位間的表示: 複製代碼 代碼如下:var iNum=55;// 10進位
var iNum=070;// 8進位
var iNum=oxAB;//16進位
var fNum=3.125e7;//科學計數法表示浮點數
幾個特殊值也被定義為Number類型,前兩個是Number.MAX_VALUE和Number.MIN_VALUE,它們定義了Number值集合的外邊界。所有ECMAScript數都必須在這兩個值之間,不過計算產生的數值結果可以不落在這兩個數之間。
當計算產生的數大於Number.MAX_VALUE時,它將被賦予值Number.POSITIVE_INFINITY,意味著不再有數字值。同樣,產生的數值小於Number.MIN_VALUE的計算也會被賦予值Number.NEGATIVE_INFINITY,也意味著不再有數字值。如果計算返回的結果是無窮大,那麼產生的結果不能再用於其他計算。
事實上,有專門的值表示無窮大,即Infinity。Number.POSITIVE_INFINITY的值為Infinity,Number.NEGATIVE_INFINITY的值為-Infinity。
可以對任何數調用isFinit()方法來判斷是不是無窮大。例: 複製代碼 代碼如下:var iResult = iNum*some_really_large_number;
if(isFinit(iResult)){
alert("Number is finite");
}
else{
alert("Number is infinite");
}
還有一個特殊值是NaN,表示非數(Not a Number)。NaN一般為類型轉換失敗時的值,NaN不能用於算術計算,NaN的另一個奇特之處在於它與自身並不相等,因此推薦使用isNaN(),如: 複製代碼 代碼如下:alert(NaN == NaN); //outpus "false"
alert(isNaN("blue")); //outpus "true"
alert(isNaN("123")); //outpus "false"
alert(isNaN(123)); //outpus "false"
6、String類型
String是唯一沒有固定大小的原始類型。ECMAScript的字元字面量:
字面量 含義
\n 換行
\t 定位字元
\b 空格
\r 斷行符號
\f 換頁符
\\ 反斜線
\' 單引號
\" 雙引號
\0nnn 八進位代碼nnn表示的字元
\xnn 16進位代碼nn表示的字元
\unnnn 16進位的代碼nnnn表不的Unicode字元