《JavaScript高級程序設(shè)計(jì)》閱讀筆記(二) ECMAScript中的原始類型
更新時間:2012年02月27日 23:19:13 作者:
ECMAScript有5種原始類型(primitive type),即Undefined、Null、Boolean、Number和String。ECMAScript提供了typeof來判斷值的類型
2.6 原始類型
ECMAScript有5種原始類型(primitive type),即Undefined、Null、Boolean、Number和String。ECMAScript提供了typeof來判斷值的類型。
1、typeof運(yùn)算符:
var sTemp="test string";
alert(typeof sTemp);//outpus "string"
alert(typeof 95);//outpus "number"
typeof運(yùn)算符返回值只有5種,分別為:如果變量是Undefined型返回"undefined",如果變量是Boolean型返回"boolean",如果變量是Number型返回"number",如果變量是String型返回"string",如果變量是一種引用類型或Null類型返回"object"。
2、Undefined類型
Undefined類型只有一個值,即undefined。當(dāng)聲明的變量未初始化和函數(shù)無明確的返回值時該變量的默認(rèn)值和函數(shù)的返回值都是undefined。需要注意的是值undefined并不同于未定義的值,但typeof不區(qū)分這兩種值。參考下面的代碼:
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實(shí)際不是從值null派生來的,因此ECMAScript把它們定義為相等。
1 alert(null == undefined); //outpus "true"
盡管這兩個值相等,但它們的含義不同。undefined是聲明了變量但未對其初始化時的值,null則用于表示尚未存在的對象。
4、Boolean類型
Boolean有兩個值true和false
5、Number類型
Number可以表示32位整數(shù),還可以表示64位浮點(diǎn)數(shù),不同進(jìn)制間的表示:
var iNum=55;// 10進(jìn)制
var iNum=070;// 8進(jìn)制
var iNum=oxAB;//16進(jìn)制
var fNum=3.125e7;//科學(xué)計(jì)數(shù)法表示浮點(diǎn)數(shù)
幾個特殊值也被定義為Number類型,前兩個是Number.MAX_VALUE和Number.MIN_VALUE,它們定義了Number值集合的外邊界。所有ECMAScript數(shù)都必須在這兩個值之間,不過計(jì)算生成的數(shù)值結(jié)果可以不落在這兩個數(shù)之間。
當(dāng)計(jì)算生成的數(shù)大于Number.MAX_VALUE時,它將被賦予值Number.POSITIVE_INFINITY,意味著不再有數(shù)字值。同樣,生成的數(shù)值小于Number.MIN_VALUE的計(jì)算也會被賦予值Number.NEGATIVE_INFINITY,也意味著不再有數(shù)字值。如果計(jì)算返回的結(jié)果是無窮大,那么生成的結(jié)果不能再用于其他計(jì)算。
事實(shí)上,有專門的值表示無窮大,即Infinity。Number.POSITIVE_INFINITY的值為Infinity,Number.NEGATIVE_INFINITY的值為-Infinity。
可以對任何數(shù)調(diào)用isFinit()方法來判斷是不是無窮大。例:
var iResult = iNum*some_really_large_number;
if(isFinit(iResult)){
alert("Number is finite");
}
else{
alert("Number is infinite");
}
還有一個特殊值是NaN,表示非數(shù)(Not a Number)。NaN一般為類型轉(zhuǎn)換失敗時的值,NaN不能用于算術(shù)計(jì)算,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 八進(jìn)制代碼nnn表示的字符
\xnn 16進(jìn)制代碼nn表示的字符
\unnnn 16進(jìn)制的代碼nnnn表不的Unicode字符
ECMAScript有5種原始類型(primitive type),即Undefined、Null、Boolean、Number和String。ECMAScript提供了typeof來判斷值的類型。
1、typeof運(yùn)算符:
復(fù)制代碼 代碼如下:
var sTemp="test string";
alert(typeof sTemp);//outpus "string"
alert(typeof 95);//outpus "number"
typeof運(yùn)算符返回值只有5種,分別為:如果變量是Undefined型返回"undefined",如果變量是Boolean型返回"boolean",如果變量是Number型返回"number",如果變量是String型返回"string",如果變量是一種引用類型或Null類型返回"object"。
2、Undefined類型
Undefined類型只有一個值,即undefined。當(dāng)聲明的變量未初始化和函數(shù)無明確的返回值時該變量的默認(rèn)值和函數(shù)的返回值都是undefined。需要注意的是值undefined并不同于未定義的值,但typeof不區(qū)分這兩種值。參考下面的代碼:
復(fù)制代碼 代碼如下:
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實(shí)際不是從值null派生來的,因此ECMAScript把它們定義為相等。
1 alert(null == undefined); //outpus "true"
盡管這兩個值相等,但它們的含義不同。undefined是聲明了變量但未對其初始化時的值,null則用于表示尚未存在的對象。
4、Boolean類型
Boolean有兩個值true和false
5、Number類型
Number可以表示32位整數(shù),還可以表示64位浮點(diǎn)數(shù),不同進(jìn)制間的表示:
復(fù)制代碼 代碼如下:
var iNum=55;// 10進(jìn)制
var iNum=070;// 8進(jìn)制
var iNum=oxAB;//16進(jìn)制
var fNum=3.125e7;//科學(xué)計(jì)數(shù)法表示浮點(diǎn)數(shù)
幾個特殊值也被定義為Number類型,前兩個是Number.MAX_VALUE和Number.MIN_VALUE,它們定義了Number值集合的外邊界。所有ECMAScript數(shù)都必須在這兩個值之間,不過計(jì)算生成的數(shù)值結(jié)果可以不落在這兩個數(shù)之間。
當(dāng)計(jì)算生成的數(shù)大于Number.MAX_VALUE時,它將被賦予值Number.POSITIVE_INFINITY,意味著不再有數(shù)字值。同樣,生成的數(shù)值小于Number.MIN_VALUE的計(jì)算也會被賦予值Number.NEGATIVE_INFINITY,也意味著不再有數(shù)字值。如果計(jì)算返回的結(jié)果是無窮大,那么生成的結(jié)果不能再用于其他計(jì)算。
事實(shí)上,有專門的值表示無窮大,即Infinity。Number.POSITIVE_INFINITY的值為Infinity,Number.NEGATIVE_INFINITY的值為-Infinity。
可以對任何數(shù)調(diào)用isFinit()方法來判斷是不是無窮大。例:
復(fù)制代碼 代碼如下:
var iResult = iNum*some_really_large_number;
if(isFinit(iResult)){
alert("Number is finite");
}
else{
alert("Number is infinite");
}
還有一個特殊值是NaN,表示非數(shù)(Not a Number)。NaN一般為類型轉(zhuǎn)換失敗時的值,NaN不能用于算術(shù)計(jì)算,NaN的另一個奇特之處在于它與自身并不相等,因此推薦使用isNaN(),如:
復(fù)制代碼 代碼如下:
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 八進(jìn)制代碼nnn表示的字符
\xnn 16進(jìn)制代碼nn表示的字符
\unnnn 16進(jìn)制的代碼nnnn表不的Unicode字符
相關(guān)文章
fixedBox固定div漂浮代碼支持ie6以上大部分主流瀏覽器
本例為大家分享的是fixedBox固定div漂浮代碼支持ie6以上大部分瀏覽器,需要的朋友可以參考下2014-06-06
基于MVC方式實(shí)現(xiàn)三級聯(lián)動(JavaScript)
這篇文章主要為大家詳細(xì)介紹了基于MVC方式實(shí)現(xiàn)三級聯(lián)動的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01
javascript自定義右鍵彈出菜單實(shí)現(xiàn)方法
這篇文章主要介紹了javascript自定義右鍵彈出菜單實(shí)現(xiàn)方法,涉及javascript操作鼠標(biāo)事件及頁面元素的相關(guān)技巧,需要的朋友可以參考下2015-05-05
javascript 中的try catch應(yīng)用總結(jié)
這篇文章主要介紹了javascript 中的try catch應(yīng)用總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-04-04

