JavaScript對象

JavaScript對象

一、Array對象

提供對創建任何數據類型的數組的支持。

語法

arrayObj = new Array()
arrayObj = new Array([size])
arrayObj = new Array([element0[, element1[, ...[, elementN]]]])

參數解析

arrayObj

必選項。要賦值爲 Array 對象的變量名。

size

可選項。可選項數組的大小。由於數組的下標是從零開始,創建的元素的下標將從零到 size -1。

element0,...,elementN

可選項。要放到數組中的元素。這將創建具有 n + 1 個元素的長度爲 n + 1 的數組。使用該語法時必須有一個以上元素。

使用

創建數組後,能夠用 [ ] 符號訪問數組單個元素,例如:


var my_array = new Array();
for (i = 0; i < 10; i++){
   my_array[i] = i;
}
x = my_array[4];  // x = 5

​ 由於 JavaScript 中的數組的下標是從零開始的,前面例子中最後一條語句訪問數組的第五個元素。該元素中保存的值是 4。 如果只向 Array 的構造函數傳遞了一個參數,而該參數是數字,則它必須是無符號32位整數(大約40億)。該值成爲數組的大小。如果該值爲數值,但小於0或不爲整數,發生運行時錯誤。如果傳遞給 Array 構造函數的是單個值並且不是數值,設置 length 屬性爲1,而且唯一的元素值成爲單個的傳入的參數。

注意 JavaScript 數組爲解析數組,也就是儘管可以分配多個元素給一個數組,但實際上只有包含數據的元素才存在。這減少了數組使用的內存數量。

二、ActiveXObject對象

啓用並返回 Automation 對象的引用。


newObj = new ActiveXObject(servername.typename[, location])

ActiveXObject 對象語法有這些部分:

參數解析

newObj

必選項。要賦值爲 ActiveXObject 的變量名。

servername

必選項。提供該對象的應用程序的名稱。

typename

必選項。要創建的對象的類型或類。

location

可選項。創建該對象的網絡服務器的名稱。

使用

Automation 服務器至少提供一類對象。例如,字處理應用程序可能提供應用程序對象、文檔對象和工具欄對象。要創建 Automation 對象,將新的 ActiveXObject 賦給對象變量:


var ExcelSheet;
ExcelApp = new ActiveXObject("Excel.Application");
ExcelSheet = new ActiveXObject("Excel.Sheet");

本代碼啓動創建對象的應用程序(在這種情況下,Microsoft Excel 工作表)。一旦對象被創建,就可以用定義的對象變量在代碼中引用它。 在下面的例子中,通過對象變量 ExcelSheet 訪問新對象的屬性和方法和其他 Excel 對象,包括 Application 對象和 ActiveSheet.Cells 集合。


// 使 Excel 通過 Application 對象可見。
ExcelSheet.Application.Visible = true;
// 將一些文本放置到表格的第一格中。
ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1";
// 保存表格。
ExcelSheet.SaveAs("C:\\TEST.XLS");
// 用 Application 對象用 Quit 方法關閉 Excel。
ExcelSheet.Application.Quit();

只有當 Internet 安全性關閉時才能完成在遠程服務器中創建對象。要在遠程網絡計算機創建對象,可以將該計算機的名稱傳遞給 ActiveXObjectservername 參數。該名稱與共享名的機器名部分相同。比如共享名爲 "\myserver\public" 的網絡,servername 是 "myserver"。另外,可以用 DNS 格式或 IP 地址指定 servername

下面的代碼返回在名爲 "myserver" 的遠程網絡計算機上運行的 Excel 實例的版本號:


function GetAppVersion() {
   var XLApp = new ActiveXObject("Excel.Application", "MyServer");
   return(XLApp.Version);
}

如果指定的遠程服務器不存在或找不到時將發生錯誤。

三、Boolean對象

創建新的 Boolean 值。

語法


boolObj = new  Boolean([boolValue])

參數解析

boolObj

必選項。要賦值爲 Boolean 對象的變量名。

boolValue

可選項。是新對象的初始 Boolean 值。如果忽略 Boolvalue ,或者其值爲 false、0、nullNaN,或者空字符串,則該 Boolean 對象的初始值爲 false。否則,初始值爲 true

使用

Boolean 對象是 Boolean 數據類型的包裝器。每當 Boolean 數據類型轉換爲 Boolean 對象時,JavaScript 都隱含地使用 Boolean 對象。 很少會顯式地調用 Boolean 對象。

四、Date對象

啓用基本存儲器並取得日期和時間。

語法


dateObj = new Date()
dateObj = new Date(dateVal)
dateObj = new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]]) 

參數解析

dateObj

必選項。要賦值爲 Date 對象的變量名。

dateVal

必選項。如果是數字值,dateVal 表示指定日期與 1970 年 1 月 1 日午夜間全球標準時間的毫秒數。如果是字符串,則 dateVal 按照 parse 方法中的規則進行解析。dateVal 參數也可以是從某些 ActiveX(R) 對象返回的 VT_DATE 值。

year

必選項。完整的年份,比如,1976(而不是 76)。

month

必選項。表示的月份,是從 0 到 11 之間的整數( 1 月至 12 月)。

date

必選項。表示日期,是從 1 到 31 之間的整數。

hours

可選項。 如果提供了 minutes 則必須給出。表示小時,是從 0 到 23 的整數(午夜到 11pm)。

minutes

可選項。 如果提供了 seconds 則必須給出。表示分鐘,是從 0 到 59 的整數。

seconds

可選項。 如果提供了 milliseconds 則必須給出。表示秒鐘,是從 0 到 59 的整數。

ms

可選項。 表示毫秒,是從 0 到 999 的整數。

使用

Date 對象保存以毫秒爲單位表示特定時間段。如果某個參數的值大於其範圍或爲負數,則存儲的其他值將做相應的調整。例如,如果指定 150 秒,JavaScript 將該數字重新定義爲 2 分 30 秒。 如果數字爲 NaN,則表示該對象不代表特定的時間段。如果未向 Date 對象傳遞參數,它將被初始化爲當前時間 (UTC)。在能夠使用該對象前必須爲其賦值。Date 對象能夠表示的日期範圍約等於 1970 年 1 月 1 日前後各 285,616 年。 Date 對象具有兩個不創建 Date 對象就可以調用的靜態方法。它們是 parseUTC

下面的示例演示了 Date 對象的用法。


function DateDemo(){
   var d, s = "Today's date is: ";           // 聲明變量。
   d = new Date();                           // 創建 Date 對象。
   s += (d.getMonth() + 1) + "/";            // 獲取月份。
   s += d.getDate() + "/";                   // 獲取日。
   s += d.getYear();                         // 獲取年份。
   return(s);                                // 返回日期。
}

五、Enumerator對象

啓用枚舉集合中的項目。

語法


enumObj = new Enumerator([collection]) 

參數解析

enumObj

必選項。要賦值爲 Enumerator 對象的變量名。

collection

可選項。任意 Collection 對象。

使用

集合與數組的不同點在於集合的成員不能直接訪問。不象處理數組時使用下標,這時只能將當前項目指針移動到集合的下一或前一元素。 Enumerator 對象提供了訪問集合的任何成員的方法,其操作與 VBScript 中的 For...Each 語句相似。

下面的代碼顯示了 Enumerator 對象的用法:


function ShowDriveList(){
   var fso, s, n, e, x;                     // 聲明變量。
   fso = new ActiveXObject("Scripting.FileSystemObject");
   e = new Enumerator(fso.Drives);          // 在驅動器上創建 Enumerator。
   s = "";
   for (;!e.atEnd();e.moveNext())           // 枚舉驅動器集合。
      {
         x = e.item();
         s = s + x.DriveLetter;
         s += " - ";
         if (x.DriveType == 3)              // 查看是否網絡驅動。
            n = x.ShareName;                // 獲取共享名。
         else if (x.IsReady)                // 查看驅動器是否已就緒。
            n = x.VolumeName;               // 獲取卷名。
         else
            n = "[驅動器未就緒]";
         s +=  n + "<br>";
      }
   return(s);                               // 返回活動驅動器列表。
}

六、Error對象

保存有關錯誤的信息。

語法


var newErrorObj = new Error(  
)
var newErrorObj = new Error(
  number
)
var newErrorObj = new Error(
  number,
  description
)

參數解析

number

與錯誤相聯的數字值。如果省略則爲零。

description

描述錯誤的簡短字符串。如果省略則爲空字符串。

使用

每當產生運行時錯誤,就產生 Error 對象的一個實例以描述錯誤。該實例有兩個固有屬性保存錯誤的描述(description 屬性)和錯誤號(number 屬性)。

錯誤號是 32 位的值。高 16 位字是設備代碼,而低字是實際的錯誤代碼。

Error 對象也可以用如上所示的語法顯式創建,或用 throw 語句拋掉。在兩種情況下,都可以添加選擇的任何屬性,以拓展 Error 對象的能力。

典型地,在 try...catch 語句中創建的局部變量引用隱式創建的 Error 對象。因此,可以按選擇的任何方法使用錯誤號和描述。

下面的例子演示了隱式創建 Error 對象的使用:


try
 { x = y                           // 產生錯誤。
}catch(e){                         // 創建局部變量 e。
  response.write(e)                  // 打印 "[object Error]".
  response.write(e.number & 0xFFFF)  // 打印 5009。
  response.write(e.description)      // 打印 "'y' is undefined".
}

七、Function對象

創建新的函數。

語法 1


function functionName([argname1 [, ...[, argnameN]]]){
   body
}

語法 2


functionName = new Function( [argname1, [... argnameN,]] body );

參數解析

functionName

必選項。最新創建函數的名稱

argname1...argnameN

可選項。函數接收的參數列表。

body

可選項。包含調用該函數時被執行的 JavaScript 代碼塊的字符串。

使用

函數 JavaScript 中的基本數據類型。語法 1 創建在必要時由 JavaScript 轉換爲 Function 對象的函數值。JavaScript 在調用函數時將用語法 2 創建的函數轉換爲 Fnction 對象。

語法 1 是 JavaScript 中創建函數的基本方法。語法 2 是用於顯式創建函數對象的另一方法。

例如,要創建將傳遞給它的兩個參數相加的函數,可以用兩種方法中的任一種完成:

示例1

function add(x, y)
{
   return(x + y);            // 執行加法並返回結果。
}
示例2

var add = new Function("x", "y", "return(x+y)");

在兩種情況下,都可以用如下代碼行調用該函數:


add(2, 3);

注意 在調用函數時,請確保包含了括號和必需的參數。調用函數時不用括號導致返回函數的文本而不是函數執行的結果。

八、Global對象

是一個固有對象,目的是把所有全局方法集中在一個對象中。

Global對象沒有語法。直接調用其方法。

使用

Global 對象從不直接使用,並且不能用 new 運算符創建。它在 Scripting 引擎被初始化時創建,並立即使其方法和屬性可用。

九、Math對象

是一個固有對象,提供基本數學函數和常數。

語法


Math.[{property | method}

參數解析

property

必選項。Math 對象的一個屬性名。

method

必選項。Math.對象的一個方法名。

使用

Math 對象不能用 new 運算符創建,如果試圖這樣做則給出錯誤。該對象在裝載腳本引擎時由該引擎創建。其所有方法和屬性在腳本中總是可用。

十、Number對象

代表數值數據類型和提供數值常數的對象。

語法


numObj = new Number(value);

參數解析

numobj

必選項。要賦值爲 Number 對象的變量名。

value

必選項。Required. The numeric value of the Number object being created.

value 參數是對象的數字值。

使用

JavaScript 根據數字值的要求創建 Number 對象。 很少有必要顯式創建 Number 對象。Number 對象最主要的用途是將其屬性集中到一個對象中,以及使數字能夠通過 toString 方法轉換爲字符串。

十一、Object對象

提供所有 JavaScript 對象通用的功能。

語法


obj = new Object([value]); 

參數解析

obj

必選項。要賦值爲 Object 對象的變量名。

value

可選項。任意一種 JavaScript 基本數據類型。(Number、Boolean、或 String。)如果 value 爲一個對象,返回不作改動的該對象。如果 valuenullundefined,或者沒有給出,則產生沒有內容的對象。

使用

Object 對象被包含在所有其它 JavaScript 對象中;在所有其它對象中它的方法和屬性都是可用的。在用戶定義的對象中可以重定義這些方法,並在適當的時候通過 JavaScript 調用。toString 方法是經常被重定義的 Object 方法的例子。

十二、RegRxp對象

保存有關正則表達式模式匹配信息的固有全局對象。

語法


RegExp.property

必選項 property 參數是 RegExp 對象的任意一個屬性。

使用

RegExp 對象不能直接創建,但始終可以使用。在成功的正則表達式查找完成之前,RegExp 對象各屬性的初始值如下所示:

屬性簡寫初始值
index-1
lastIndex-1
lastMatch$&空字符串。
lastParen$+空字符串。
leftContext空字符串。
rightContext空字符串。
$1 - $9$1 - $9空字符串。

在成功的正則表達式查找完成之前,其屬性值爲 undefined

不要將全局 RegExp 對象與 正則表達式 對象混淆。儘管聽起來像是一回事,但它們是截然不同的。全局 RegExp 對象的屬性包含不斷更新的關於每個匹配出現的信息,而正則表達式對象只包含出現正則表達式匹配的信息。

示例

下面的例子演示了全局 RegExp 對象的用法。


function matchDemo(){
   var s;
   var re = new RegExp("d(b+)(d)","ig");
   var str = "cdbBdbsbdbdz";
   var arr = re.exec(str);
   s = "$1 contains: " + RegExp.$1 + "\n";
   s += "$2 contains: " + RegExp.$2 + "\n";
   s += "$3 contains: " + RegExp.$3;
   return(s);
}

十三、正則表達式對象

對象包含正則表達式模式以及表明如何應用模式的標誌。

語法 1


re = /pattern/[flags]

語法 2


re = new RegExp("pattern",["flags"]) 

參數解析

re

必選項。將要賦值爲正則表達式模式的變量名。

Pattern

必選項。要使用的正則表達式模式。如果使用語法 1,用 "/" 字符分隔模式。如果用語法 2,用引號將模式引起來。

flags

可選項。如果使用語法 2 要用引號將 flag 引起來。標誌可以組合使用,可用的有:

  • g (全文查找出現的所有 pattern

  • i (忽略大小寫)

  • m (多行查找)

使用

不要將正則表達式對象跟全局 RegExp 對象混淆。儘管聽起來像是一回事,但它們是截然不同的。正則表達式對象的屬性只包含一個正則表達式的信息,而全局 RegExp 對象的屬性包含了不斷更新的每一個匹配出現的信息。

正則表達式對象保存用於查找字符串中的字符組合時的模式。創建正則表達式對象後,或者它被傳遞給字符串方法,或者字符串被傳遞給一個正則表達式方法。有關最近進行查找的信息被保存在全局 RegExp 對象中。

當預先知道查找字符串時用語法 1。當查找字符串經常變動或不知道時用語法 2,比如由用戶輸入得到的字符串。

在使用前 pattern 參數被編譯爲內部格式。對語法 1 來說,pattern 在該腳本被裝載時被編譯。對語法 2 來說,pattern 在使用前,或調用 compile 方法時被編譯。

示例

下面的示例創建一個包含正則表達式模式及相關標誌的對象(re),向您演示正則表達式對象的用法。在本例中,作爲結果的正則表達式對象又用於 match 方法中:


function MatchDemo(){
   var r, re;                     // 聲明變量。
   var s = "The rain in Spain falls mainly in the plain";
   re = new RegExp("Spain","i");  // 創建正則表達式對象。
   r = s.match(re);               // 在字符串 s 中查找匹配。
   return(r);                     // 返回匹配結果。
}

十五、String對象

可用於處理或格式化文本字符串以及確定和定位字符串中的子字符串。

語法


newString = new String(["stringLiteral"]);

參數

newString

必選項。要賦值爲 String 對象的變量名。

stringLiteral

可選項。任意 Unicode 字符羣。

使用

String 對象可用字符串文字顯式創建。用這種方法創建的 String 對象(指以標準字符串形式)與用 new 運算符創建的 String 對象處理上不同。所有字符串文字共享公用的全局字符串對象。如果爲字符串文字添加屬性,則它對所有標準字符串對象都是可用的:

var alpha, beta;
alpha = "這是一個字符串";
beta = "這也是一個字符串";

alpha.test = 10;

在前一示例中,這時爲 beta 和所有將來的字符串定義 test。然而,在下面的例子中,被添加屬性的處理略有不同:


var gamma, delta;
gamma = new String("這是一個字符串");
delta = new String("這是也一個字符串");

gamma.test = 10;

在這種情況下,不爲 delta 定義 test。每個用 new String 聲明的 String 對象有其自己的一組成員。這是對 String 對象和字符串文字的處理不同的唯一情況。

十六、VBArray對象

提供對 Visual Basic 安全數組的訪問。

語法


varName = new VBArray(safeArray)

參數解析

varName

必選項。要賦值爲 VBArray 的變量名。

safeArray

必選項。VBArray 值。

使用

VBArrays 是隻讀的,並且不能被直接創建。在傳遞給 VBArray 構造函數之前 safeArray 參數必須已獲得 VBArray 值。這隻能通過從已有的 ActiveX 或其它對象獲得值才能做到。

VBArrays 可以有多維。每一維的下標可以不一樣。dimensions 方法取得數組的維數;lboundubound 方法取得每個維的下標範圍。

示例

下面的例子由三部分組成。第一部分是創建 Visual Basic 安全數組的 VBScript 代碼。第二部分是將 VB 安全數組轉換爲 JavaScript 數組的 JavaScript 代碼。這兩部分都放到 HTML 頁的 <HEAD> 節中。第三部分是放在 <BODY> 節中以運行其它兩部分的 JavaScript 代碼。

<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!--
Function CreateVBArray()
   Dim i, j, k
   Dim a(2, 2)
   k = 1
   For i = 0 To 2
      For j = 0 To 2
         a(j, i) = k
         document.writeln(k)
         k = k + 1
      Next
      document.writeln("vbCRLF")
   Next
   CreateVBArray = a
End Function
-->
</SCRIPT>

<SCRIPT LANGUAGE="JavaScript">
<!--
function VBArrayTest(vbarray){
   var a = new VBArray(vbarray);
   var b = a.toArray();
   var i;
   for (i = 0; i < 9; i++) 
   {
      document.writeln(b[i]);
   }
}
-->
</SCRIPT>
</HEAD>

<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
   VBArrayTest(CreateVBArray());
-->
</SCRIPT>
</BODY>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章