Jscript 有三種主要資料類型、兩種複合資料類型和兩種特殊資料類型。
主要(基本)資料類型是:
字串:如 "This text string" ;
數值:如123, 120.50 ;
布林:如 true 或 false;
複合(引用)資料類型是:
物件
陣列
特殊資料類型是:
Null
Undefined
Null 資料類型
在 Jscript 中資料類型 null 只有一個值:null。 關鍵字 null 不能用作函數或變數的名稱。
包含 null 的變數包含“無值”或“無物件”。 換句話說, 該變數沒有保存有效的數、字串、boolean、陣列或物件。 可以通過給一個變數賦 null 值來清除變數的內容。
請注意, 在 Jscript 中, null 與 0 不相等(與在 C 和 C++ 中不同)。 同時應該指出的是, Jscript中 typeof 運算子將報告 null 值為 Object 類型, 而非類型 null。 這點潛在的混淆是為了向下相容。
Undefined 資料類型
當物件屬性不存在或聲明了變數但從未賦值時會返回 undefined 值。
1 Wrapper物件wrapper是一種物件,
它與其所代表的基礎資料類型同名。
每種基礎資料類型(string、number和Boolean)均有其對應的String物件、Number物件和Boolean物件。
這些物件都叫做wrapper,
並擁有屬性和方法,
可以進一步定義物件。
例如,
String物件有一系列的方法,
使用這些方法可以改變字串的顏色、大小和字體。
Number物件的方法可以將一個數字格式化為指定位元數的有效數字。
無論是使用物件還是字面量方式創建string、number或Boolean,
JS都可以進行內部資料類型轉換(基底資料型別和物件資料類型根據需要實現相互轉換)。
wrapper物件真正的優點是可以擴展基底資料型別的屬性及方法,
並反過來影響基底資料型別。
String物件
Number 物件
Boolean物件
Array物件
Date物件
Math物件
RegExp物件
Function物件(匿名函數)
可以通過new運算子來創建物件實例:
var carname=new String();
var x=new Number();
var y=new Boolean();
var cars=new Array();
var now = new Date();
var person=new Object;
創建Math物件的實例可以不使用new運算子。
3 字串物件String物件是wrapper物件, 該物件包裝在一個基底字元串之上, 並擁有一系列的屬性和方法。
var string_name = "string of text";
var string_name = ne String("string of text");
將帶引號的字串文本賦給一個變數,
這樣就可以隱式地創建String物件,
是基本類型的字串。
也可以通過new關鍵字和構造函數String()顯式地創建String物件。
無論採用哪種方法,
新字串變數都可以使用String物件的屬性和方法。
要創建自己的物件實例, 必須首先為其定義一個構造函數。 構造函數創建一個新物件, 賦予物件屬性, 並在合適的時候賦予方法。 例如, 下面的示例為 pasta 物件定義了構造函數。 注意 this 關鍵字的使用,
function pasta(grain, width, shape, hasEgg)
{
this.grain = grain;
this.width = width;
this.shape = shape;
this.hasEgg = hasEgg;
this.toString = pastaToString;
}
pastaToString是物件的定義中包含方法(函數)。
function pastaToString()
{
return "Grain: " + this.grain + " " +
"Width: " + this.width + " " +
"Shape: " + this.shape + " " +
"Egg?: " + Boolean(this.hasEgg);
}
定義了物件構造器後, 用 new 運算子創建物件實例。
var spaghetti = new pasta("wheat", 0.2, "circle", true);
window.alert(spaghetti);
可以給物件實例添加屬性以改變該實例, 但是用相同的構造器生成的其他物件定義中並不包括這些屬性, 而且除非你特意添加這些屬性那麼在其他實例中並不顯示出來。
-End-