《JavaScript高級(jí)程序設(shè)計(jì)》閱讀筆記(二) ECMAScript中的原始類型
更新時(shí)間:2012年02月27日 23:19:13 作者:
ECMAScript有5種原始類型(primitive type),即Undefined、Null、Boolean、Number和String。ECMAScript提供了typeof來(lái)判斷值的類型
2.6 原始類型
ECMAScript有5種原始類型(primitive type),即Undefined、Null、Boolean、Number和String。ECMAScript提供了typeof來(lái)判斷值的類型。
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類型只有一個(gè)值,即undefined。當(dāng)聲明的變量未初始化和函數(shù)無(wú)明確的返回值時(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也是只有一個(gè)值的類型,它只有一個(gè)專用值null。值undefined實(shí)際不是從值null派生來(lái)的,因此ECMAScript把它們定義為相等。
1 alert(null == undefined); //outpus "true"
盡管這兩個(gè)值相等,但它們的含義不同。undefined是聲明了變量但未對(duì)其初始化時(shí)的值,null則用于表示尚未存在的對(duì)象。
4、Boolean類型
Boolean有兩個(gè)值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ù)
幾個(gè)特殊值也被定義為Number類型,前兩個(gè)是Number.MAX_VALUE和Number.MIN_VALUE,它們定義了Number值集合的外邊界。所有ECMAScript數(shù)都必須在這兩個(gè)值之間,不過(guò)計(jì)算生成的數(shù)值結(jié)果可以不落在這兩個(gè)數(shù)之間。
當(dāng)計(jì)算生成的數(shù)大于Number.MAX_VALUE時(shí),它將被賦予值Number.POSITIVE_INFINITY,意味著不再有數(shù)字值。同樣,生成的數(shù)值小于Number.MIN_VALUE的計(jì)算也會(huì)被賦予值Number.NEGATIVE_INFINITY,也意味著不再有數(shù)字值。如果計(jì)算返回的結(jié)果是無(wú)窮大,那么生成的結(jié)果不能再用于其他計(jì)算。
事實(shí)上,有專門(mén)的值表示無(wú)窮大,即Infinity。Number.POSITIVE_INFINITY的值為Infinity,Number.NEGATIVE_INFINITY的值為-Infinity。
可以對(duì)任何數(shù)調(diào)用isFinit()方法來(lái)判斷是不是無(wú)窮大。例:
var iResult = iNum*some_really_large_number;
if(isFinit(iResult)){
alert("Number is finite");
}
else{
alert("Number is infinite");
}
還有一個(gè)特殊值是NaN,表示非數(shù)(Not a Number)。NaN一般為類型轉(zhuǎn)換失敗時(shí)的值,NaN不能用于算術(shù)計(jì)算,NaN的另一個(gè)奇特之處在于它與自身并不相等,因此推薦使用isNaN(),如:
alert(NaN == NaN); //outpus "false"
alert(isNaN("blue")); //outpus "true"
alert(isNaN("123")); //outpus "false"
alert(isNaN(123)); //outpus "false"
6、String類型
String是唯一沒(méi)有固定大小的原始類型。ECMAScript的字符字面量:
字面量 含義
\n 換行
\t 制表符
\b 空格
\r 回車(chē)
\f 換頁(yè)符
\\ 反斜杠
\' 單引號(hào)
\" 雙引號(hào)
\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來(lái)判斷值的類型。
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類型只有一個(gè)值,即undefined。當(dāng)聲明的變量未初始化和函數(shù)無(wú)明確的返回值時(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也是只有一個(gè)值的類型,它只有一個(gè)專用值null。值undefined實(shí)際不是從值null派生來(lái)的,因此ECMAScript把它們定義為相等。
1 alert(null == undefined); //outpus "true"
盡管這兩個(gè)值相等,但它們的含義不同。undefined是聲明了變量但未對(duì)其初始化時(shí)的值,null則用于表示尚未存在的對(duì)象。
4、Boolean類型
Boolean有兩個(gè)值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ù)
幾個(gè)特殊值也被定義為Number類型,前兩個(gè)是Number.MAX_VALUE和Number.MIN_VALUE,它們定義了Number值集合的外邊界。所有ECMAScript數(shù)都必須在這兩個(gè)值之間,不過(guò)計(jì)算生成的數(shù)值結(jié)果可以不落在這兩個(gè)數(shù)之間。
當(dāng)計(jì)算生成的數(shù)大于Number.MAX_VALUE時(shí),它將被賦予值Number.POSITIVE_INFINITY,意味著不再有數(shù)字值。同樣,生成的數(shù)值小于Number.MIN_VALUE的計(jì)算也會(huì)被賦予值Number.NEGATIVE_INFINITY,也意味著不再有數(shù)字值。如果計(jì)算返回的結(jié)果是無(wú)窮大,那么生成的結(jié)果不能再用于其他計(jì)算。
事實(shí)上,有專門(mén)的值表示無(wú)窮大,即Infinity。Number.POSITIVE_INFINITY的值為Infinity,Number.NEGATIVE_INFINITY的值為-Infinity。
可以對(duì)任何數(shù)調(diào)用isFinit()方法來(lái)判斷是不是無(wú)窮大。例:
復(fù)制代碼 代碼如下:
var iResult = iNum*some_really_large_number;
if(isFinit(iResult)){
alert("Number is finite");
}
else{
alert("Number is infinite");
}
還有一個(gè)特殊值是NaN,表示非數(shù)(Not a Number)。NaN一般為類型轉(zhuǎn)換失敗時(shí)的值,NaN不能用于算術(shù)計(jì)算,NaN的另一個(gè)奇特之處在于它與自身并不相等,因此推薦使用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是唯一沒(méi)有固定大小的原始類型。ECMAScript的字符字面量:
字面量 含義
\n 換行
\t 制表符
\b 空格
\r 回車(chē)
\f 換頁(yè)符
\\ 反斜杠
\' 單引號(hào)
\" 雙引號(hào)
\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-06js簡(jiǎn)易namespace管理器 實(shí)例代碼
js簡(jiǎn)易namespace管理器 實(shí)例代碼,需要的朋友可以參考一下2013-06-06基于MVC方式實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)(JavaScript)
這篇文章主要為大家詳細(xì)介紹了基于MVC方式實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01淺析JS中NEW的實(shí)現(xiàn)原理及重寫(xiě)
本文通過(guò)實(shí)例代碼給大家介紹了JS中NEW的實(shí)現(xiàn)原理及重寫(xiě),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-02-02javascript自定義右鍵彈出菜單實(shí)現(xiàn)方法
這篇文章主要介紹了javascript自定義右鍵彈出菜單實(shí)現(xiàn)方法,涉及javascript操作鼠標(biāo)事件及頁(yè)面元素的相關(guān)技巧,需要的朋友可以參考下2015-05-05javascript 中的try catch應(yīng)用總結(jié)
這篇文章主要介紹了javascript 中的try catch應(yīng)用總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-04-04JavaScript獲取網(wǎng)頁(yè)表單提交方式的方法
這篇文章主要介紹了JavaScript獲取網(wǎng)頁(yè)表單提交方式的方法,可判斷表單提交方式是get還是post,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04