Jscript 有三種主要數據類型兩種復合數據類型和兩種特殊數據類型
主要(基本)數據類型是
字符串
數值
布爾
復合(引用)數據類型是
對象
數組
特殊數據類型是
Null
Undefined
字符串數據類型
一個字符串值是排在一起的一串零或零以上的 Unicode 字符(字母數字和標點符號)字符串數據類型用來表示 JScript 中的文本腳本中可以包含字符串文字這些字符串文字放在一對匹配的的單引號或雙引號中字符串中可以包含雙引號該雙引號兩邊需加單引號也可以包含單引號該單引號兩邊需加雙引號下面是字符串的示例
Happy am I; from care Im free!
Avast ye lubbers! roared the technician
c
請注意JScript 中沒有表示單個字符的類型要表示 Jscript 中的單個字符應創建一個只包含一個字符的字符串包含零個字符()的字符串是空(零長度)字符串
數值數據類型
在 Jscript 中整數和浮點值沒有差別JScript 數值可以是其中任意一種(JScript 內部將所有的數值表示為浮點值)
整型值
整型值可以是正整數負整數和 可以用 進制 進制和 進制來表示在 Jscript 中大多數字是用十進制表示的加前綴表示 進制的整型值只能包含 到 的數字前綴為同時包含數字或的數被解釋為十進制數
加前綴x(零和x|X)表示 進制整型值可以包含數字 到 以及字母 A 到 F(大寫或小寫)使用字母 A 到 F 表示十進制 到 的單個數字就是說 xF 與 相等同時 x 等於
八進制和十六進制數可以為負但不能有小數位同時不能以科學計數法(指數)表示
浮點值
浮點值為帶小數部分的數也可以用科學計數法來表示這就是說大寫或小寫e用來表示 的次方Jscript用數值表示的八字節 IEEE 浮點標准這意味著數字最大可以到 ±x最小到 ±x以開始且包含小數點的數字被解釋為小數浮點數
注意以x或開始並包含小數點的數將發生錯誤以下是 Jscript 中數字的例子
數字 描述 等價十進制數
e e 四個相等的浮點數
e 浮點數
整數
整數雖然看起來是八進制數(以 開頭)但是 不是有效的八進制數字所以為十進制數
八進制整數注意它雖然看起來比上面的數只小 但實際數值有很大不同
浮點數雖然以零開頭但由於帶有小數點所以不是八進制數
錯誤兩個零開頭表示為八進制但八進制數不能帶有小數部分 N/A (編譯錯誤)
Xff 十六進制整數
xCF 十六進制整數
xe 十六進制整數注意e並不被認為指數
xe 錯誤十六進制數不能有小數部分 N/A (編譯錯誤)
另外Jscript 包含特殊值數字它們是
NaN (不是數)當對不適當的數據進行數學運算時使用例如字符串或未定義值
正無窮大在 Jscript 中如果一個正數太大的話使用它來表示
負無窮大在 Jscript 中如果一個負數太大的話使用它來表示
正 和負 Jscript 區分正 和負
Boolean 數據類型
盡管字符串和數字類型可以有無數不同的值Boolean 數據類型卻只有兩個值它們是文字 true 和 falseBoolean 值是一個真值它表示一個狀態的有效性(說明該狀態為真或假)
腳本中的比較通常得到一個 Boolean 結果考慮下一行 Jscript 代碼
y = (x == );
這裡要比較變量 x 的值是否與數字 相等如果相等比較的結果為 Boolean 值 true並將其賦給變量 y如果 x 與 不等則比較的結果為 Boolean 值false
Boolean 值在結構控制中尤其有用可以將直接創建 Boolean 值的比較與用使用該 Boolean 值的語句相組合考慮下面的 Jscript 代碼范例
if (x == )
z = z + ;
else
x = x + ;
當 Boolean 值為 true 時Jscript 中的 if/else 語句執行一個操作(這樣z = z + )而當 Boolean 值為 false 時執行另一個操作(x = x + )
可以使用任意表達式作比較表達式任何值為 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 與 不相等(與在 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做比較
someObjectprop == null;
如下情況時比較的結果為 true
如果屬性 someObjectprop 包含 null 值
如果屬性 someObjectprop 不存在
要檢查一個對象屬性是否存在可以使用新的 in 運算符
if (prop in someObject)
// someObject 有屬性 prop
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19491.html