Microsoft Jscript 提供了 11 個內(nèi)部(或“內(nèi)置”)對象。它們是Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、Error 以及 String 對象。每一個對象有相關(guān)的方法和屬性,這在語言參考中有詳細的描述。本節(jié)中也描述了某些對象。
Array 對象
數(shù)組下標可以被認為是對象的屬性,它是通過數(shù)字索引來引用的。注意添加到數(shù)組中的已命名的屬性不能通過數(shù)字來索引;它們是與數(shù)組元素分離的。
使用 new 運算符和 Array() 構(gòu)造器 生成一個新的數(shù)組,如下面的示例。
var theMonths = new Array(12);
theMonths[0] = "Jan";
theMonths[1] = "Feb";
theMonths[2] = "Mar";
theMonths[3] = "Apr";
theMonths[4] = "May";
theMonths[5] = "Jun";
theMonths[6] = "Jul";
theMonths[7] = "Aug";
theMonths[8] = "Sep";
theMonths[9] = "Oct";
theMonths[10] = "Nov";
theMonths[11] = "Dec";
用關(guān)鍵字 Array 生成數(shù)組時,Jscript 包含了 length 屬性,該屬性記錄了數(shù)組入口數(shù)。如果沒有給該屬性指定值,則設(shè)置長度為 0 且數(shù)組沒有入口點。如果指定一個數(shù)值,則將長度設(shè)置為該數(shù)。如果指定了不止一個參數(shù),則這些參數(shù)被用作數(shù)組的入口。另外,參數(shù)的數(shù)目被賦給 length 屬性。如下面的示例與前一個示例是等價的。
var theMonths = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
當向用關(guān)鍵字 Array 生成的數(shù)組中添加元素時,Jscript 自動改變屬性 length 的值。Jscript 中的數(shù)組索引總是以 0 開始,而不是 1,所以屬性 length 通常比數(shù)組的最大索引大 1。
String對象
在 Jscript 中,可以將字符串(和數(shù))當作對象來處理。string 對象 有一些內(nèi)置方法,可以和自己的字符串一起使用。其中一個是substring 方法,它返回字符串的一部分。該方法以兩個數(shù)字作為參數(shù)。
aString = "0123456789";
var aChunk = aString.substring(4, 7); // 將 aChunk 設(shè)為 "456"。
var aNotherChunk = aString.substring(7, 4); // 將 aNotherChunk 設(shè)為 "456"。
// 使用上面生成數(shù)組的示例:
firstLetter = theMonths[5].substring(0,1); // 將變量 firstLetter 設(shè)為“J”。
String 對象的另一個屬性是 length 屬性。本屬性包含了字符串中的字符數(shù)(空字符串為 0)。它是一個數(shù)值,可以直接在計算中使用。
var howLong = "Hello World".length // 設(shè)置變量 howLong 為 11。
Math 對象
Math 對象有許多預定義屬性和方法。屬性是特殊的數(shù)字。這些特殊的數(shù)字之一是 pi 值(近似 3.14159…)。這是 Math.PI 屬性,如下例所示。
// 聲明一個半徑變量并賦數(shù)值。
var circleArea = Math.PI * radius * radius; // 注意 Math 和 PI 大寫。
Math 對象的一個內(nèi)置方法是乘冪方法(或 pow),使用該方法求得指定數(shù)的冪次。下面的例子同時使用了 pi 和乘冪。
// 本公式計算給定半徑的球體的體積。
volume = (4/3)*(Math.PI*Math.pow(radius,3));
Date 對象
Date 對象可以被用來表示任意的日期和時間,獲取當前系統(tǒng)日期以及計算兩個日期的間隔。它擁有一些預定義的屬性和方法。通常,Date 對象給出星期;月份,天數(shù)和年份;以及以小時,分鐘和秒表示的時間。該信息是基于 1970 年1 月 1 日 00:00:00.000 GMT 開始的毫秒數(shù),其中 GMT 是格林威治標準時間(首選術(shù)語是 UTC,或者“全球標準時間”,它引用的信號是由“世界時間標準”發(fā)布的)。Jscript 可以處理 250,000 B.C. 到 255,000 A.D范圍內(nèi)的日期。
使用 new 運算符創(chuàng)建一個新的 Date 對象。下面的示例計算當年已過去的天數(shù)和今年剩下的天數(shù)。
/*
本示例使用前面定義的月份名稱數(shù)組。
第一條語句以“Day Month Date 00:00:00 Year”格式
對 thisIsToday 變量賦值。
*/
var thisIsToday = new Date();
var toDay = new Date(); //獲取今天的日期。
// 提取年,月,日。
var thisYear = toDay.getFullYear();
var thisMonth = theMonths[toDay.getMonth()];
var thisDay = thisMonth + " " + toDay.getDate() + ", " + thisYear;
Number 對象
除了 Math 對象中可用的特殊數(shù)值屬性(例如 PI)外,在 Microsoft Jscript 中, Number 對象有幾個其他的數(shù)值屬性。
屬性 描述
MAX_VALUE 可能的最大數(shù)大約為 1.79E+308;可以是正數(shù)或負數(shù)。(具體數(shù)值隨系統(tǒng)不同而有微小差別。)
MIN_VALUE 可能的最小數(shù)大約為 2.22E-308;可以是正數(shù)或負數(shù)。(具體數(shù)值隨系統(tǒng)不同而有微小差別。)
NaN 特殊非數(shù)量值,“不是數(shù)值”。
POSITIVE_INFINITY 比最大正數(shù)(Number.MAX_VALUE)還要大的任意正值自動被轉(zhuǎn)換為此值,代表正無窮大。
NEGATIVE_INFINITY 比最小的負數(shù)(負的 Number.MAX_VALUE)還小的任意值被自動轉(zhuǎn)換為此值,代表負無窮。
Number.NaN 是一個特殊的屬性,被定義為“不是數(shù)值”。例如被 0 除返回 NaN。試圖解析一個無法被解析為數(shù)字的字符串同樣返回 Number.NaN。把 NaN 與任何數(shù)值或本身作比較的結(jié)果都是不相等。不能通過與 Number.NaN 比較來測試 NaN 結(jié)果,而應該使用 isNaN() 函數(shù)。
更多信息請查看IT技術(shù)專欄