
build網(wǎng)站制作 |
ECMAScript原始類(lèi)型當(dāng)前位置:首頁(yè)>主要服務(wù)>網(wǎng)站制作>JS/Jquery![]() ECMAScript 有 5 種原始類(lèi)型(primitive type、Null、Boolean、Number 和String。ECMA-262把術(shù)語(yǔ)類(lèi)型(type)定義為值的一個(gè)集合,每種原始類(lèi)型 定義了它包含的值的范圍及其字面量表示形式。
ECMAScript提供了tyPeof運(yùn)算符來(lái)判斷一個(gè)值是否在某種類(lèi)型的范圍內(nèi)。可以用這種運(yùn)算符判斷一個(gè)值是否 表示一種原始類(lèi)型;如果它是原始類(lèi)型,還可以判斷它表示哪種原始類(lèi)型。
typeof 運(yùn)算符
typeof運(yùn)算符有一個(gè)參數(shù),即要檢查的變量或值。例如: var sTeqp = "test string'; 丨i:ypsg£ sTemp); //outputs * string" aLert(typeof 95)r //outputs numberp 對(duì)變量或值調(diào)用typecf運(yùn)算符將返回下列值之一: 〃undefined〃,如果變量是 Undefined 型的。 〃boolean〃,如果變量是Boolean型的。 〃number〃,如果變量是Number型的。 〃string〃,如果變量是String型的。 〃object〃,如果變量是一種引用類(lèi)型或Null類(lèi)型的。 你也許會(huì)問(wèn),為什么typeof運(yùn)算符對(duì)于null值會(huì)返回〃object"。這實(shí)際上是JavaScript 最初實(shí)現(xiàn)中的一個(gè)錯(cuò)誤,然后被ECMAScript沿用了。現(xiàn)在,null被認(rèn)為是對(duì)象的占 位符,從而解釋了這一矛盾,但從技術(shù)上來(lái)說(shuō),它仍然是原始值。
Undefined 類(lèi)型
如前所述,Undefined類(lèi)型只有一個(gè)值,即undefined。當(dāng)聲明的變量未初始化時(shí), 該變量的默認(rèn)值是undefined。 var oTenip; 前面一行代碼聲明變量oTemp,沒(méi)有初始值。該變量將被賦予值undefined,即 Undefined類(lèi)型的字面量??梢杂孟旅娴拇a段測(cè)試該變量的值是否等于 undefined: var oTePKP; aLert(oTemp := undefined); 這段代碼將顯示〃true〃,說(shuō)明這兩個(gè)值確實(shí)相等。還可以用typeof運(yùn)算符顯示該 變量的值是undefined。 var oTeinp; aLert I typeof ); //outputs , undefined^ 注意,值undefined并不同于未定義的值。但是,typeof運(yùn)算符并不真正區(qū)分這兩 種值??紤]下面的代碼: var oTeccp; / /make sure this variable isn* t defined. "var oTemp2 ? _______ //try outputting alert<typeof oTejnp'l ; //outputs ’undefined- ert <typeof 2} ; //oy^pyts ^undefined* 前面的代碼對(duì)兩個(gè)變量輸出的都是〃undefined'',即使只有變量oTemp2是未定義 的。如果不用typecf運(yùn)算符,就對(duì)cTemp2使用其他運(yùn)算符,這將引起錯(cuò)誤,因?yàn)?nbsp;那些運(yùn)算符只能用于已定義的變量。例如,下面的代碼將引發(fā)錯(cuò)誤: sure this variable isn't defined //v-ar oTecp2 ; //try outputting alertCoTepp2 undefined!; i/causes error 當(dāng)函數(shù)無(wú)明確返回值時(shí),返回的也是值undefined,如下所示: function cestFuncd { the fiinccion blasik alert (testFuncU -- undefined) j / /outputs 11 true"
Null 類(lèi)型
另一種只有一個(gè)值的類(lèi)型是Null,它只有一個(gè)專(zhuān)用值null,即它的字面量。值 undefined實(shí)際上是從值null派生來(lái)的,因此ECMAScript把它們定義為相等的。 alert (null == undefined) i ^/outputs "fcruHe' 盡管這兩個(gè)值相等,但它們的含義不同。undefined是聲明了變量但未對(duì)其初始化 時(shí)賦予該變量的值,null則用于表示尚未存在的對(duì)象(在討論typecf運(yùn)算符時(shí), 簡(jiǎn)單地介紹過(guò)這一點(diǎn))。如果函數(shù)或方法要返回的是對(duì)象,那么找不到該對(duì)象 時(shí),返回的通常是null。
Boolean 類(lèi)型
Boolean類(lèi)型是ECMAScript中最常用的類(lèi)型之一。它有兩個(gè)值true和false (即 兩個(gè)Boolean字面量)。即使false不等于0,0也可以在必要時(shí)被轉(zhuǎn)換成false, 這樣在Boolean語(yǔ)句中使用兩者都是安全的。 var bFoujid = true; var bLo^c - false;
Number 類(lèi)型
ECMA-262中定義的最特殊的類(lèi)型是Number型。這種類(lèi)型既可以表示32 位的整數(shù),還可以表示64位的浮點(diǎn)數(shù)。直接輸入的(而不是從另一個(gè)變量訪問(wèn)的)任何數(shù)字都被看作Number型的字面量。例如,下面的代碼聲明了存放整數(shù) 值的變量,它的值由字面量55定義: var iNun = 55; 整數(shù)也可以被表示為八進(jìn)制(以8為底)或十六進(jìn)制(以16為底)的字面量。 八進(jìn)制字面量的首數(shù)字必須是0,其后的數(shù)字可以是任何八進(jìn)制數(shù)字(0到7), 如下面代碼所示: var iwum = 070? //&70 is equal to 56 in deciinai 要?jiǎng)?chuàng)建十六進(jìn)制的字面量,首位數(shù)字必須為0,其后接字母[然后是任意的十 六進(jìn)制數(shù)字(0到9和A到F)。這些字母可以是大寫(xiě)的,也可以是小寫(xiě)的。例如: var iJto = 0xl£? "0x1 £ is equal to 31 in decimal var 1Nup2 = OstAB; //OxAB is egyal zo 27L in deciml 盡管所有整數(shù)都可表示為八進(jìn)制或十六進(jìn)制的字面量,但所有數(shù)學(xué)運(yùn)算返回的都是 十進(jìn)制結(jié)果。 要定義浮點(diǎn)值,必須包括小數(shù)點(diǎn)和小數(shù)點(diǎn)后的一位數(shù)字(例如,用1.0而不是1)。 這被看作浮點(diǎn)數(shù)字面量。例如: var a 5.0; 浮點(diǎn)字面量的有趣之處在于,用它進(jìn)行計(jì)算前,真正存儲(chǔ)的是字符串。 對(duì)于非常大或非常小的數(shù),可以用科學(xué)記數(shù)法表示浮點(diǎn)值。采用科學(xué)記數(shù)法, 可以把一個(gè)數(shù)表示為數(shù)字(包括十進(jìn)制數(shù)字)加e (或E),后面加乘以10的倍數(shù)。 網(wǎng)站動(dòng)態(tài)
|

易勢(shì)網(wǎng)站制作,以DIV+CSS為主,js/jQuery為輔,制作利于優(yōu)化,頁(yè)面美觀的優(yōu)質(zhì)網(wǎng)站!

網(wǎng)絡(luò)策劃公司|新浪官方微博|大連網(wǎng)站建設(shè)
沈陽(yáng)易勢(shì)科技有限公司 網(wǎng)站制作網(wǎng)絡(luò)營(yíng)銷(xiāo)公司 © 2011 , All rights reserved. 公司地址:沈陽(yáng)市鐵西區(qū)貴和街道建設(shè)中路15號(hào)淺草綠閣商務(wù)樓402室沈陽(yáng)網(wǎng)站制作易勢(shì)最專(zhuān)業(yè)
遼B2-20150173-8