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字符