posts - 1,  comments - 0,  trackbacks - 0

          數(shù)據(jù)類(lèi)型

          Jscript 有三種主要數(shù)據(jù)類(lèi)型、兩種復(fù)合數(shù)據(jù)類(lèi)型和兩種特殊數(shù)據(jù)類(lèi)型。

          主要(基本)數(shù)據(jù)類(lèi)型是:

          • 字符串
          • 數(shù)值
          • 布爾

          復(fù)合(引用)數(shù)據(jù)類(lèi)型是:

          • 對(duì)象
          • 數(shù)組

          特殊數(shù)據(jù)類(lèi)型是:

          • Null
          • Undefined

          字符串?dāng)?shù)據(jù)類(lèi)型

          一個(gè)字符串值是排在一起的一串零或零以上的 Unicode 字符(字母、數(shù)字和標(biāo)點(diǎn)符號(hào))。字符串?dāng)?shù)據(jù)類(lèi)型用來(lái)表示 JScript 中的文本。腳本中可以包含字符串文字,這些字符串文字放在一對(duì)匹配的的單引號(hào)或雙引號(hào)中。字符串中可以包含雙引號(hào),該雙引號(hào)兩邊需加單引號(hào),也可以包含單引號(hào),該單引號(hào)兩邊需加雙引號(hào)。下面是字符串的示例:

          				
          						"Happy am I; from care I’m free!"
          '"Avast, ye lubbers!" roared the technician.' 
          "42"
          'c'
          				
          		

          請(qǐng)注意,JScript 中沒(méi)有表示單個(gè)字符的類(lèi)型(如 C++ 的 char)。要表示 Jscript 中的單個(gè)字符,應(yīng)創(chuàng)建一個(gè)只包含一個(gè)字符的字符串。包含零個(gè)字符("")的字符串是空(零長(zhǎng)度)字符串。

          數(shù)值數(shù)據(jù)類(lèi)型

          在 Jscript 中整數(shù)和浮點(diǎn)值沒(méi)有差別;JScript 數(shù)值可以是其中任意一種(JScript 內(nèi)部將所有的數(shù)值表示為浮點(diǎn)值)。

          整型值

          整型值可以是正整數(shù),負(fù)整數(shù)和 0??梢杂?10 進(jìn)制,8 進(jìn)制和 16 進(jìn)制來(lái)表示。在 Jscript 中大多數(shù)字是用十進(jìn)制表示的。加前綴“0”表示 8 進(jìn)制的整型值,只能包含 0 到 7 的數(shù)字。前綴為“0”同時(shí)包含數(shù)字“8”或“9”的數(shù)被解釋為十進(jìn)制數(shù)。

          加前綴“0x”(零和x|X)表示 16 進(jìn)制整型值??梢园瑪?shù)字 0 到 9,以及字母 A 到 F(大寫(xiě)或小寫(xiě))。使用字母 A 到 F 表示十進(jìn)制 10 到 15 的單個(gè)數(shù)字。就是說(shuō) 0xF 與 15 相等,同時(shí) 0x10 等于 16。

          八進(jìn)制和十六進(jìn)制數(shù)可以為負(fù),但不能有小數(shù)位,同時(shí)不能以科學(xué)計(jì)數(shù)法(指數(shù))表示。

          浮點(diǎn)值

          浮點(diǎn)值為帶小數(shù)部分的數(shù)。也可以用科學(xué)計(jì)數(shù)法來(lái)表示。這就是說(shuō),大寫(xiě)或小寫(xiě)“e”用來(lái)表示 10 的次方。Jscript用數(shù)值表示的八字節(jié) IEEE754 浮點(diǎn)標(biāo)準(zhǔn)。這意味著數(shù)字最大可以到±1.7976931348623157x10308,最小到±5x10-324。以“0”開(kāi)始且包含小數(shù)點(diǎn)的數(shù)字被解釋為小數(shù)浮點(diǎn)數(shù)。

          注意以“0x”或“00”開(kāi)始并包含小數(shù)點(diǎn)的數(shù)將發(fā)生錯(cuò)誤。以下是 Jscript 中數(shù)字的例子。

          數(shù)字 描述 等價(jià)十進(jìn)制數(shù)
          .0001, 0.0001, 1e-4, 1.0e-4 四個(gè)相等的浮點(diǎn)數(shù)。 0.0001
          3.45e2 浮點(diǎn)數(shù)。 345
          42 整數(shù)。 42
          0378 整數(shù)。雖然看起來(lái)是八進(jìn)制數(shù)(以0開(kāi)頭),但是8不是有效的八進(jìn)制數(shù)字,所以為十進(jìn)制數(shù)。 378
          0377 八進(jìn)制整數(shù)。注意它雖然看起來(lái)比上面的數(shù)只小1,但實(shí)際數(shù)值有很大不同。 255
          0.0001 浮點(diǎn)數(shù)。雖然以零開(kāi)頭,但由于帶有小數(shù)點(diǎn)所以不是八進(jìn)制數(shù)。 0.0001
          00.0001 錯(cuò)誤。兩個(gè)零開(kāi)頭表示為八進(jìn)制,但八進(jìn)制數(shù)不能帶有小數(shù)部分。 N/A (編譯錯(cuò)誤)
          0Xff 十六進(jìn)制整數(shù)。 255
          0x37CF 十六進(jìn)制整數(shù)。 14287
          0x3e7 十六進(jìn)制整數(shù)。注意‘e’并不被認(rèn)為指數(shù)。 999
          0x3.45e2 錯(cuò)誤。十六進(jìn)制數(shù)不能有小數(shù)部分。 N/A (編譯錯(cuò)誤)

          另外,JScript包含特殊值數(shù)字。它們是:

          • NaN (不是數(shù))。當(dāng)對(duì)不適當(dāng)?shù)臄?shù)據(jù)進(jìn)行數(shù)學(xué)運(yùn)算時(shí)使用,例如字符串或未定義值。
          • 正無(wú)窮大。在JScript中如果一個(gè)正數(shù)太大的話(huà)使用它來(lái)表示。
          • 負(fù)無(wú)窮大。在JScript中如果一個(gè)負(fù)數(shù)太大的話(huà)使用它來(lái)表示。
          • 正0和負(fù)0。Jscript區(qū)分正0和負(fù)0。

          Boolean數(shù)據(jù)類(lèi)型

          盡管字符串和數(shù)字類(lèi)型可以有無(wú)數(shù)不同的值,boolean 數(shù)據(jù)類(lèi)型卻只有兩個(gè)值。它們是文字 true false。Boolean值是一個(gè)真值,它表示一個(gè)狀態(tài)的有效性(說(shuō)明該狀態(tài)為真或假)。

          腳本中的比較通常得到一個(gè) Boolean 結(jié)果??紤]下一行 Jscript 代碼。

          				
          						y = (x == 2000);
          				
          		

          這里要比較變量 x 的值是否與數(shù)字 2000 相等。如果相等,比較的結(jié)果為 Boolean 值 true,并將其賦給變量 y。如果x與2000不等,則比較的結(jié)果為boolean值false

          Boolean值在結(jié)構(gòu)控制中尤其有用??梢詫⒅苯觿?chuàng)建 boolean 值的比較與用使用該 boolean 值的語(yǔ)句相組合??紤]下面的JScript代碼范例。

          				
          						if (x == 2000)
              z = z + 1;
          else
              x = x + 1;
          				
          		

          當(dāng) boolean 值為 true 時(shí),Jscript 中的 if/else 語(yǔ)句執(zhí)行一個(gè)操作(這樣,z = z + 1),而當(dāng) boolean 值為 false 時(shí)執(zhí)行另一個(gè)操作(x = x + 1)。

          可以使用任意表達(dá)式作比較表達(dá)式。任何值為0、null、未定義或空字符串的表達(dá)式被解釋為 false。其他任意值的表達(dá)式解釋為 true。例如,可以使用如下表達(dá)式:

          				
          						
          								if (x = y + z) // 這可能不是想要的結(jié)果如下!
          				
          		

          注意上面的代碼并不檢查 x 是否與 y+z 相等,因?yàn)閮H使用了一個(gè)等號(hào)(賦值)。相反的,上面的代碼將 y+z 賦給變量 x,然后檢查整個(gè)表達(dá)式的值是否為零。要檢查 x 是否與 y+z 相等,使用如下代碼。

          				
          						
          								if (x == y + z) // 這與上面的代碼不同!
          				
          		

          Null 數(shù)據(jù)類(lèi)型

          在 Jscript 中數(shù)據(jù)類(lèi)型 null 只有一個(gè)值:null。關(guān)鍵字 null 不能用作函數(shù)或變量的名稱(chēng)。

          包含 null 的變量包含“無(wú)值”或“無(wú)對(duì)象”。換句話(huà)說(shuō),該變量沒(méi)有保存有效的數(shù)、字符串、boolean、數(shù)組或?qū)ο???梢酝ㄟ^(guò)給一個(gè)變量賦 null 值來(lái)清除變量的內(nèi)容。

          請(qǐng)注意,在 Jscript 中,null 與 0 不相等(與在 C 和 C++ 中不同)。同時(shí)應(yīng)該指出的是,Jscript中 typeof 運(yùn)算符將報(bào)告 null 值為 Object 類(lèi)型,而非類(lèi)型 null。這點(diǎn)潛在的混淆是為了向下兼容。

          Undefined 數(shù)據(jù)類(lèi)型

          如下情況使返回 undefined 值:

          • 對(duì)象屬性不存在,
          • 聲明了變量但從未賦值。

          注意不能通過(guò)與 undefined 做比較來(lái)測(cè)試一個(gè)變量是否存在,雖然可以檢查它的類(lèi)型是否為“undefined”。在以下的代碼范例中,假設(shè)程序員想測(cè)試是否已經(jīng)聲明變量 x :

          				
          						
          								// 這種方法不起作用
          if (x == undefined)    // 作某些操作
          
          // 這個(gè)方法同樣不起作用- 必須檢查
          // 字符串 "undefined"if (typeof(x) == undefined)    // 作某些操作
          
          // 這個(gè)方法有效
          if (typeof(x) == "undefined")    // 作某些操作
          				
          		

          考慮將 undefined 值與null做比較。

          				
          						someObject.prop == null;
          				
          		

          如下情況時(shí),比較的結(jié)果為 true,

          • 如果屬性 someObject.prop 包含 null 值,
          • 如果屬性 someObject.prop 不存在。
          • 要檢查一個(gè)對(duì)象屬性是否存在,可以使用新的 in 運(yùn)算符:
          				
          						
          								if ("prop" in someObject)
          // someObject 有屬性
          						
          								 'prop'



          運(yùn)算符

          JScript 具有全范圍的運(yùn)算符,包括算術(shù)、邏輯、位、賦值以及其他某些運(yùn)算符。

          計(jì)算 邏輯 位運(yùn)算 賦值 雜項(xiàng) ? ? ? ? ?
          描述 符號(hào) 描述 符號(hào) 描述 符號(hào) 描述 符號(hào) 描述 符號(hào)
          負(fù)值 - 邏輯非 ! 按位取反 ~ 賦值 = 刪除 delete
          遞增 ++ 小于 < 按位左移 << 運(yùn)算賦值 oP= typeof 運(yùn)算符 typeof
          遞減 -- 大于 > 按位右移 >> ? ? void void
          乘法 * 小于等于 <= 無(wú)符號(hào)右移 >>> ? ? instanceof instanceof
          除法 / 大于等于 >= 按位與 & ? ? new new
          取模運(yùn)算 % 等于 == 按位異或 ^ ? ? in in
          加法 + 不等于 != 按位或 | ? ? ? ?
          減法 - 邏輯與 && ? ? ? ? ? ?
          ? ? 邏輯或 || ? ? ? ? ? ?
          ? ? 條件(三元運(yùn)算符) ?: ? ? ? ? ? ?
          ? ? 逗號(hào) , ? ? ? ? ? ?
          ? ? 嚴(yán)格相等 === ? ? ? ? ? ?
          ? ? 非嚴(yán)格相等 !== ? ? ? ? ? ?

          posted @ 2006-10-11 21:45 yucc 閱讀(619) | 評(píng)論 (0)編輯 收藏
          僅列出標(biāo)題  

          <2025年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(1)

          隨筆分類(lèi)

          隨筆檔案

          文章檔案

          搜索

          •  

          最新評(píng)論

          主站蜘蛛池模板: 澄迈县| 巴林左旗| 商水县| 澄江县| 孟州市| 门头沟区| 大邑县| 湟源县| 高阳县| 乳源| 武宁县| 青冈县| 凤台县| 涞源县| 乐东| 景泰县| 达孜县| 犍为县| 南昌市| 拜泉县| 天祝| 周口市| 同仁县| 芜湖市| 宾川县| 泰宁县| 钟山县| 肇州县| 远安县| 巴彦县| 连平县| 昌宁县| 中卫市| 庄河市| 广饶县| 会同县| 郧西县| 平昌县| 子洲县| 兴隆县| 靖远县|