posts - 1,  comments - 0,  trackbacks - 0

          數據類型

          Jscript 有三種主要數據類型、兩種復合數據類型和兩種特殊數據類型。

          主要(基本)數據類型是:

          • 字符串
          • 數值
          • 布爾

          復合(引用)數據類型是:

          • 對象
          • 數組

          特殊數據類型是:

          • Null
          • Undefined

          字符串數據類型

          一個字符串值是排在一起的一串零或零以上的 Unicode 字符(字母、數字和標點符號)。字符串數據類型用來表示 JScript 中的文本。腳本中可以包含字符串文字,這些字符串文字放在一對匹配的的單引號或雙引號中。字符串中可以包含雙引號,該雙引號兩邊需加單引號,也可以包含單引號,該單引號兩邊需加雙引號。下面是字符串的示例:

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

          請注意,JScript 中沒有表示單個字符的類型(如 C++ 的 char)。要表示 Jscript 中的單個字符,應創建一個只包含一個字符的字符串。包含零個字符("")的字符串是空(零長度)字符串。

          數值數據類型

          在 Jscript 中整數和浮點值沒有差別;JScript 數值可以是其中任意一種(JScript 內部將所有的數值表示為浮點值)。

          整型值

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

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

          八進制和十六進制數可以為負,但不能有小數位,同時不能以科學計數法(指數)表示。

          浮點值

          浮點值為帶小數部分的數。也可以用科學計數法來表示。這就是說,大寫或小寫“e”用來表示 10 的次方。Jscript用數值表示的八字節 IEEE754 浮點標準。這意味著數字最大可以到±1.7976931348623157x10308,最小到±5x10-324。以“0”開始且包含小數點的數字被解釋為小數浮點數。

          注意以“0x”或“00”開始并包含小數點的數將發生錯誤。以下是 Jscript 中數字的例子。

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

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

          • NaN (不是數)。當對不適當的數據進行數學運算時使用,例如字符串或未定義值。
          • 正無窮大。在JScript中如果一個正數太大的話使用它來表示。
          • 負無窮大。在JScript中如果一個負數太大的話使用它來表示。
          • 正0和負0。Jscript區分正0和負0。

          Boolean數據類型

          盡管字符串和數字類型可以有無數不同的值,boolean 數據類型卻只有兩個值。它們是文字 true false。Boolean值是一個真值,它表示一個狀態的有效性(說明該狀態為真或假)。

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

          				
          						y = (x == 2000);
          				
          		

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

          Boolean值在結構控制中尤其有用??梢詫⒅苯觿摻?boolean 值的比較與用使用該 boolean 值的語句相組合。考慮下面的JScript代碼范例。

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

          當 boolean 值為 true 時,Jscript 中的 if/else 語句執行一個操作(這樣,z = z + 1),而當 boolean 值為 false 時執行另一個操作(x = x + 1)。

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

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

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

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

          Null 數據類型

          在 Jscript 中數據類型 null 只有一個值:null。關鍵字 null 不能用作函數或變量的名稱。

          包含 null 的變量包含“無值”或“無對象”。換句話說,該變量沒有保存有效的數、字符串、boolean、數組或對象。可以通過給一個變量賦 null 值來清除變量的內容。

          請注意,在 Jscript 中,null 與 0 不相等(與在 C 和 C++ 中不同)。同時應該指出的是,Jscript中 typeof 運算符將報告 null 值為 Object 類型,而非類型 null。這點潛在的混淆是為了向下兼容。

          Undefined 數據類型

          如下情況使返回 undefined 值:

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

          注意不能通過與 undefined 做比較來測試一個變量是否存在,雖然可以檢查它的類型是否為“undefined”。在以下的代碼范例中,假設程序員想測試是否已經聲明變量 x :

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

          考慮將 undefined 值與null做比較。

          				
          						someObject.prop == null;
          				
          		

          如下情況時,比較的結果為 true

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



          運算符

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

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

          posted on 2006-10-11 21:45 yucc 閱讀(609) 評論(0)  編輯  收藏 所屬分類: javascript

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          <2006年10月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章檔案

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 津南区| 乡城县| 礼泉县| 大兴区| 潍坊市| 增城市| 资阳市| 安乡县| 韶关市| 双桥区| 黎川县| 舟山市| 当涂县| 且末县| 桃源县| 吉水县| 灯塔市| 志丹县| 鹰潭市| 平昌县| 阳高县| 襄樊市| 白朗县| 木里| 石狮市| 西充县| 金塔县| 高碑店市| 驻马店市| 田林县| 竹山县| 莱州市| 宜章县| 上饶市| 嵊泗县| 天津市| 三原县| 河池市| 伊春市| 通渭县| 洪湖市|