JScript 的資料類型

來源:互聯網
上載者:User
js|jscript|資料|資料類型

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、未定義或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'


相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

11.11 Big Sale for Cloud

Get Unbeatable Offers with up to 90% Off,Oct.24-Nov.13 (UTC+8)

Get It Now >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。