js庫函數大全


 

Global(全局對象/屬性)

Global

全局對象

Infinity

表示無窮大的數字屬性

NaN

非數字屬性

undefined

未定義值

 

Global

全局對象


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

this

全局屬性

全局對象不是一個類,所以下面的全局屬性在自己名稱下有單獨的參考條目。也就是說,在“undefined”名下可以找到undefined屬性的詳細信息,而不是在“Global.undefined”下尋找。注意,所有頂層變量也都是全局對象的屬性。

Infinity

表示正無窮大的數值。

NaN

非數字值。

undefined

未定義的值。

全局函數

全局對象是一個對象,而不是類。下面列出的全局函數不是任何對象的方法,它們的參考條目出現在函數名下。例如,在“parseInt()”下可以找到parseInt()函數的詳細信息,在“Global.parseInt()”下就無法找到該函數的詳細信息。

decodeURI( )

對encodeURI()轉義的字符串解碼。

decodeURIComponent( )

對encodeURIComponent()轉義的字符串解碼。

encodeURI

通過轉義某些字符對URl編碼。

encodeURIComponent

通過轉義某些字符對URI的組件編碼。

escape( )

用轉義序列替換某些字符來對字符串編碼。

eval( )

計算JavaScript代碼串,返回結果。

isFinite( )

檢測一個值是否是無窮大的數字。

isNaN

檢測一個值是否是非數字的值。

parseFloat( )

從字符串解析一個數字。

parseInt( )

字符串解析一個整數。

unescape( )

對用escape()編碼的字符串解碼。

全局對象

除了上面列出的全局屬性和全局函數以外,全局對象還定義了引用JavaScript所有預 定義對象的屬性。除了Math外,這些屬性都是定義類的構造函數,Math引用的對象不是構造函數。

Array

構造函數Array()。

Boolean

構造函數Boolean()。

Date

構造函數Date()。

Error

構造函數Error()。

EvalError

構造函數EvalError()。

Function

構造函數Function()。

Math

對定義算術函數的對象的引用。

Number

構造函數Number()。

Object

構造函數Object()。

RangeError

構造函數RangeError()。

ReferenceError

構造函數RefereneeError()。

RegExp

構造函數RegExp{)。

String

構造函數String()。

SyntaxError

構造函數SyntaxError()。

TypeError

構造函數TypeError()。

URIError

構造函數URIError()。

描述

全局對象是預定義的對象,作為JavaScript的全局屬性和全局函數的占位符。通過使用全局對象,可以訪問其他所有預定義的對象、函數和屬性。全局對象不是任何對象 的屬性,所以它沒有名字(之所以選擇Global作為這個參考頁的標題,只是為了方便 組織,並不是說全局對象名為“Global”)。在頂層lavaScript代碼中,可以用關鍵字 this引用全局對象。但通常不必用這種方式引用全局對象,因為全局對象是作用域 鏈的頭,這意味着所有非限定性的變量和函數名都會作為該對象的屬性來查詢。例如,當JavaScript代碼引用parseInt()函數時,它引用的是全局對象的parstInt 屬性。全局對象是作用域鏈的頭,還意味着在頂層JavaScript代碼中聲明的所有變量 都將成為全局對象的屬性。

全局對象只是—個對象,而不是類。既沒有Global()構造函數,也無法實例化一個 新的全局對象。

當JavaScript代碼嵌入一個特殊環境中時,全局對象通常具有環境特定的屬性。實際上,ECMAScript標准沒有規定全局對象的類型,JavaScript的實現或嵌入的 JavaScript都可以把任意類型的對象作為全局對象,只要該對象定義了這里列出的基 本屬性和函數。例如,在客戶端lavagcript中,全局對象是Window對象,表示運行 JavaScript代碼的Web瀏覽器窗口。

示例

在JavaScript核心語言中,全局對象的預定義屬性都是不可枚舉的,所以可以用for/in循環列出所有隱式或顯式聲明的全局變量,如下所示:

var variables = ""

for(var name in this)

{

variables += name + "\n";

}

 

 

 

Infinity

表示無窮大的數字屬性


   

可用性

JavaScript 1.3; JScript 3.0; ECMAScript v1

語法

Infinity

描述

nfinity是一個全局屬性,它用來存放表示正無窮大的特殊的數值。用for/in循環 不能枚舉Infinity屬性,用delete運算符不能刪除它。注意,Infinity不是常 量,它可以設為其他值。(但Number.POSITIVE_INFINITY是常量。)

參閱

isFinite( ), NaN, Number.POSITIVE_INFINITY

 

 

 

NaN

非數字屬性


   

可用性

JavaScript 1.3; JScript 3.0; ECMAScript v1

語法

NaN

描述

NaN是全局屬性,引用特殊的非數字值。用for/in循環不能枚舉出NaN屬性,用 delete運算符不能刪除它。注意,NaN不是常量,可以用任意值設置它。

要判斷一個值是否是數字,只能用isNaN()函數,因為NaN與所有值都不相等,包括它自己。

參閱

Infinity, isNaN( ), Number.NaN

 

 

 

undefined

未定義值


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

語法

undefined

描述

undefined是全局屬性,存放JavaScript的undefined值。它與嘗試讀取不存在的對象屬性的值時返回的值相同。用for/in循環不能枚舉出undefined屬性,用 delete運算符也不能刪除它。注意,undefined不是常量,可以設置為其他值。

只能用==運算符測試一個值是否是未定義的,因為==運算符認為undefined值等價於null。

 

Code(編碼/解碼操作)

 

decodeURI( )

URl中未轉義的字符

decodeURIComponent( )

URI組件中的未轉義字符

encodeURI( )

URI中的轉義字符

encodeURIComponent( )

轉義URI組件中的字符

escape( )

對字符串編碼

unescape( )

給轉義字符串解碼

URIError

由URl的編碼和解碼方法拋出

 

 

 

decodeURI( )

URl中未轉義的字符

 


 

   

 

可用性

 

JavaScript 1.5; JScript 5.5; ECMAScript v3

 

語法

 

decodeURI( uri)

 

參數

 

uri

 

一個字符串,含有編碼的URI或要其他要解碼的文本。

 

返回值

 

url的副本,其中十六進制的轉義序列被它們表示的字符替換了。

 

拋出

 

URIError

 

說明uti中的一個或多個轉義序列被錯誤地格式化,不能被正確解碼。

 

描述

 

decodeURI()是一個全局函數,它返回參數uri解碼后的副本。它將保留encodeURI() 方法執行的編碼操作,詳見該函數。

 

參閱

 

decodeURIComponent( ), encodeURI( ), encodeURIComponent( ), escape( ), unescape( )

 

decodeURIComponent( )

URI組件中的未轉義字符


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

語法

decodeURI(s)

參數

s

一個字符串,含有編碼URl組件或其他要解碼的文本。

返回值

s的副本,其中十六進制的轉義序列被它們所表示的字符替換。

拋出

URIError

說明s中的一個或多個轉義序列被錯誤地格式化,不能被正確解碼。

描述

decodeURIComponent()是一個全局函數,它返回參數s解碼后的副本。它將保留encodeURIComponent()方法執行的編碼操作,詳見該函數的參考頁。

參閱

decodeURI( ), encodeURI( ), encodeURIComponent( ), escape( ), unescape( )

 

 

 

encodeURI( )

URI中的轉義字符


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

語法

encodeURI(uri)

參數

uri

一個字符串,含有URl或其他要編碼的文本。

返回值

uri的副本,其中某些字符被十六進制的轉義序列替換了。

拋出

URIError

說明uri中含有格式化錯誤的Unicode替代對,不能被編碼。

描述

encodeURI()是全局函數,返回參數uri的編碼副本。ASCII的字母和數字不編碼, 此外下面的ASCII標點符號也不編碼:

- _ . ! ~ * ' ( )

因為encodeURI()的目的是給URl進行完整的編碼,所以以下在URl中具有特殊含 義的ASCII標點符號也不轉義:

; / ? : @ & = + $ , #

uri中的其他字符都將轉換成它的UTF—8編碼字符,然后用十六進制的轉義序列(形式為%xx)對生成的一個、兩個或三個字節的字符編碼,用它們替換uri中原有的字 符。在這種編碼模式中,ASCII字符由一個%xx轉義字符替換,在\u0080到\u07ff 之間編碼的字符由兩個轉義序列替換,其他的16位Unicode字符由三個轉義序列替 換。

如果使用該方法編碼URl,應該確保URI組件(如查詢字符串)中不含有URl分隔符,如?和#。如果組件中含有這些符號,應該用encodeURIComponent()方法分別 對各個組件編碼。

用方法decodeURI()可以對該方法進行解碼操作。在ECMAScriptv3之前,可以用 escape()和unescape()方法(反對使用)執行相似的編碼解碼操作。

示例

// 返回 http://www.isp.com/app.cgi?arg1=1&arg2=hello%20world

encodeURI("http://www.isp.com/app.cgi?arg1=1&arg2=hello world");

encodeURI("\u00a9"); // 版權字符編碼為 %C2%A9

參閱

decodeURI( ), decodeURIComponent( ), encodeURIComponent( ), escape( ), unescape( )

 

 

 

encodeURIComponent( )

轉義URI組件中的字符


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

語法

encodeURIComponent(s)

參數

s

一個字符串,含有URI的一部分或其他要編碼的文本。

返回值

s的副本,其中某些字符被十六進制的轉義序列替換了。

拋出

URIError

說明s中含有格式化錯誤的Unicode替代對,不能被編碼。

描述

encodeURIComponent()是全局函數,返回參數s的編碼副本。ASCII的字母和數字不編碼,此外下面的ASCII標點符號也不編碼:

- _ . ! ~ * ' ( )

其他字符(如“/”、“:”、“#”這樣用於分隔URI各種組件的標點符號),都由一個或多個十六進制的轉義序列替換。關於使用的編碼模式,請參閱“encodeURI()”的 描述。

注意encodeURIComponent()和encodeURI()之間的差別,前者假定它的參數是URl的一部分(如協議、主機名、路徑或查詢字符串)。因此,它將轉義用於分隔URl各個部分的標點符號。

示例

encodeURIComponent("hello world?"); // 返回 hello%20world%3F

參閱

decodeURI( ), decodeURIComponent( ), encodeURI( ), escape( ), unescape( )

 

 

 

escape( )

對字符串編碼


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1; ECMAScript v3反對使用

語法

escape(s)

參數

s

要被轉義或編碼的字符串。

返回值

編碼了的s的副本,其中某些字符被替換成了十六進制的轉義序列。

描述

escape()是全局函數。它返回一個含有s的編碼版本的新字符串。s自身並沒有被修改。

在escape()返回的字符串中,除了ASCII字母、數字和標點符號@、*、_、+、-、.、和\之外,所有字符都由形為%xx或%uxxxx(x表示十六進制的數字)的轉義序列 替代。從\u0000到\u00ff的Unicode字符由轉義序列%xx替代,其他所有Unicode 字符由%uxxxx序列替代。

使用函數unescape()可以對escape()編碼的字符串進行解碼。

在客戶端JavaScript中,escape()通常是對cookie值編碼,它們含有的標點符號具有限制。參閱客戶端參考手冊部分的“Document.cookie”參考頁。

雖然ECMAScript的第一個版本標准化了escape()函數,但是ECMAScriptv3反對使用該方法,並從標准中刪除了它。ECMAScript的實現可能實現了該函數,但它不是必需的。在JavaScript 1.5和JScript 5.5及其后的版本中,應該用encodeURI()和 encodeURIComponent()代替escape()。

示例

escape("Hello World!"); // 返回 "Hello%20World%21"

參閱

encodeURI( ), encodeURIComponent( ), String, escape( ); Document.cookie in the client-side reference section

 

 

 

unescape( )

給轉義字符串解碼

 


 

   

 

可用性

 

JavaScript 1.0; JScript 1.0; ECMAScript v1; ECMAScript v3反對使用

 

語法

 

unescape(s)

 

參數

 

s

 

要解碼或“反轉義”的字符串。

 

返回值

 

s解碼后的一個副本。

 

描述

 

unescape()是全局函數,對escape()編碼的字符串解碼。該函數是通過找到形式為 %xx和%uxxxx的字符序列(這里x表示十六進制的數字),用Unicode字符\uOOxx 和\uxxxx替換這樣的字符序列進行解碼的。

 

雖然ECMAScript的第一個版本標准化了unescape(),但ECMAScriptv3從標准中刪除了它,反對使用該方法。雖然ECMAScript的實現可能實現了該函數,但這不是必需的。在JavaScript 1.5和JScript 5.5及其后的版本中,應該用decodeURI()和decodeURIComponent()代替unescape()。詳見“escape()”。

 

參閱

 

decodeURI( ), decodeURIComponent( ), escape( ), String

 

URIError

由URl的編碼和解碼方法拋出


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3 繼承於 Error

構造函數

new URIError( )

new URIError(message)

參數

message

提供異常細節的錯誤消息(可選)。如果設置了該參數,它將作為URIError對象的message屬性的值。

返回值

新構造的URIError對象。如果指定了參數message,該Error對象將它作為message 屬性的值,否則,它將用實現定義的默認字符串作為該屬性的值。如果不用new運算符,而把URIError()構造函數當作函數調用,它的行為與使用new運算符調用時一樣。

屬性

message

提供異常細節的錯誤消息。該屬性存放傳遞給構造函數的字符串,或存放實現定義的默認字符串。詳見“Error.message”。

name

聲明異常類型的字符串。所有URIError對象的name屬性都繼承值“URIError”。

描述

如果指定的字符串含有不合法的十六進制轉義序列,則decodeURI()或decodeURIComponent()方法就會拋出URIError類的實例。如果指定的字符串含有不合法的 Unicode替代對,encodeURI()或encodeURIComponent()方法也會拋出該異常。關於拋出和捕捉異常的細節,請參閱“Error”。

參閱

Error, Error.message, Error.name

 

EvalEval方法)

 

eval( )

普通異常

EvalError

執行字符串中的JavaScript代碼

 

 

 

eval( )

執行字符串中的JavaScript代碼


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

eval(code)

參數

code

執行字符串中的JavaScript代碼。

返回值

計算code得到的值(如果存在的話)。

拋出

SyntaxError

說明code中沒有合法的JavaScript表達式或語句。

EvalError

說明非法調用了eval(),例如使用的標識符不是“eval”。參閱下面描述的對該 函數的限制。

其他異常

如果傳遞給eval()的JavaScript代碼生成了一個異常,eval()將把那個異常傳遞給調用者。

描述

eval()是全局方法,它將執行含有JavaScript代碼的字符串。如果code含有一個表達式,eval()將計算這個表達式,並返回它的值。如果code含有一個或多個JavaScript語句,eval()將執行這些語句,如果最后一個語句有返回值,它還會返回這個值。如果code沒有返回任何值,eval()將返回undefined。最后,如果code 拋出了一個異常,eval()將把這個異常傳遞給調用者。

雖然eval()給JavaScript語言提供了非常強大的功能,但在實際程序中極少用它。常見的用法是編寫作為遞歸的JavaScript解釋器的程序,或者編寫動態生成並計算 JavaScript代碼的程序。

大部分使用字符串參數的JavaScript函數和方法都會接受其他類型的參數,在繼續操作之前把這些參數值轉換成字符串。但eval()的行為不是這樣。如果code參數不是原始的字符串,它將不作任何改變地返回。所以,要注意,當打算傳遞給eval()原始字符串值時,不要粗心地給它傳遞String對象。

考慮到實現的效率,ECMAScriptv3標准給eval()方法的使用加上了一條與眾不同的限制。如果試圖覆蓋eval屬性或把eval()方法賦予另一個屬性,並通過該屬性調用它,則ECMAScript實現允許拋出一個EvalError異常。

示例

eval("1+2"); // 返回 3

// 用客戶端JavaScrlpt的方法提示用戶輸入表達式並顯示出計算結果

// 詳見客戶端的方法Window.alert()和Window.prompt()

try {

alert("Result: " + eval(prompt("Enter an expression:","")));

}

catch(exception) {

alert(exception);

}

var myeval = eval; // 拋出EvalError異常

myeval("1+2"); //拋出EvalError異常

 

 

 

EvalError

在不正確使用eval()時拋出


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

繼承/覆蓋

繼承於 Error

構造函數

new EvalError( )

new EvalError(message)

參數

message

提供異常的詳細信息的錯誤消息,可選。如果設置了該參數,它將用作EvalError對象的message屬性的值。

返回值

新構造的EvalError對象。如果指定了參數message,Error對象將用它作為message 屬性的值,否則,它將用實現定義的默認字符串作為該屬性的值。如果把 EvalError()構造函數當作函數調用且不帶有new運算符,它的行為與使用new運算符調用時一樣。

屬性

message

提供異常的詳細信息的錯誤消息。該屬性存放傳遞給構造函數的字符串,或存放實現定義的默認字符串。詳見“Error.message”。

name

聲明異常類型的字符串。所有EvalError對象的name屬性都繼承值“EvalError”。

描述

當在其他名稱下調用全局函數eval()時,EvalError類的一個實例就會被拋出。關於調用eval()函數的限制,請參閱“eval()”。關於拋出和捕捉異常的細節,請參閱 “Error”。

參閱

Error, Error.message, Error.name

 

Variant(數據類型操作)

 

parseFloat( )

把字符串轉換成數字

parseInt( )

把字符串轉換成整數

isFinite( )

判斷一個數字是否是有限的

isNaN( )

檢測非數字值

Array.toString( )

將數組轉換成一個字符串

Boolean.toString( )

將布爾值轉換成字符串

Date.toDateString( )

返回Date對象日期部分作為字符串

Date.toGMTString( )

將Date轉換為世界時字符串

Date.toLocaleDateString( )

回Date對象的日期部分作為本地已格式化的字符串

Date.toLocaleString( )

將Date轉換為本地已格式化的字符串

Date.toLocaleTimeString( )

返回Date對象的時間部分作為本地已格式化的字符串

Date.toString( )

將Date轉換為字符串

Date.toTimeString( )

返回Date對象日期部分作為字符串

Date.toUTCString( )

將Date轉換為字符串(世界時)

Error.toString( )

把Error對象轉換成字符串

Function.toString( )

把函數轉換成字符串

Number.toLocaleString( )

把數字轉換成本地格式的字符串

Number.toString( )

將—個數字轉換成字符串

Object.toString( )

定義一個對象的字符串表示

RegExp.toString( )

把正則表達式轉換成字符串

String.toString( )

返回字符串

 

 

 

parseFloat( )

把字符串轉換成數字


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

parseFloat(s)

參數

s

要被解析並轉換成數字的字符串。

返回值

解析后的數字,如果字符串s沒有以一個有效的數字開頭,則返回NaN。在JavaScript 1.0中,當s不能被解析成數字時,parseFloat()返回的是0而不是NaN。

描述

方法parseFloat()將對字符串s進行解析,返回出現在s中的第一個數字。當parseFloat()在s中遇到了一個不是有效數字的字符時,解析過程就停止了,解析的結果也將在此時返回。如果s的開頭是一個parseFloat()不能解析的數字,該函數將返回NaN。可以用函數isNaN()來檢測這個值。如果只想解析數字的整數部分,則使用parseInt()方法而不是parseFloat()方法。

Bug

NaN不受JavaScript 1.0的支持,所以在該版本中,當它不能解析s時,parseFloat()返回零。這意味着在JavaScript 1.0中,如果parseFloat()的返回值為0,必須對s 執行額外的測試,以決定它表示為零還是根本不表示任何數。

參閱

isNaN( ), parseInt( )

 

 

 

parseInt( )

把字符串轉換成整數


   

可用性

JavaScript 1.0; JScript 1.1; ECMAScript v1

語法

parseInt(s)

parseInt(s, radix)

參數

s

被解析的字符串。

radix

可選的整數參數,表示要解析的數字的基數。如果省略了該參數或者它的值為0,數字將以10為基數來解析。如果它以“Ox”或“OX'’開頭,則以16為基數。 如果該參數小於2或大於36,則parseInt()返回NaN。

返回值

解析后的數字,如果字符串s不是以一個有效的整數開頭,則返回NaN。在JavaScript 1.0中,當parseInt()不能解析s時,它返回的是0而不是NaN。

描述

方法parseInt()將對字符串s進行解析,並且返回出現在s中的第一個數字(可以具有減號)。當parseInt()在s中遇到的字符不是指定的基數radix可以使用的有 效數字時,解析過程就停止,解析的結果也將在此時返回。如果s的開頭是parseInt()不能解析的數字,該函數將返回NaN。可以用函數isNaN()來檢測這個 值。

參數radix指定的是要解析成的數字的基數。如果將它設置為10,parseInt()就會 將字符串解析成十進制的數。將它設置為8,那么解析的結果就是八進制(使用0~ 7八個數字)的數。將它設置為16,解析的結果就是十六進制(使用數字0—9和字 母A—F表示)的值。radix的值可以是2~36之間的任意一個整數。

如果radix的值為0,或者沒有設置radix的值,那么parseInt()將根據字符串s 來判斷數字的基數。如果s(在可選的減號后)以0x開頭,那么parseInt()將把s 的其余部分解析成十六進制的整數。如果s以0開頭,那么ECMAScriptv3標准允許 parseInt()的一個實現把其后的字符解析成八進制的數字或十進制的數字。如果s 以1—9之間的數字開頭,parseInt()將把它解析成十進制的整數。

示例

parseInt("19", 10); // 返回 19 (10 + 9)

parseInt("11", 2); // 返回 3 (2 + 1)

parseInt("17", 8); // 返回 15 (8 + 7)

parseInt("1f", 16); // 返回 31 (16 + 15)

parseInt("10"); // 返回 10

parseInt("0x10"); // 返回 16

parseInt("010"); //不明確:返回10或8

Bug

在沒有指定radix時,ECMAScriptV3允許實現將以“0”(但不是“OX”或“OX”) 開頭的字符串解析為八進制或十進制的數。要避免這種二義性,應該明確指定基數,或只有確定所有要解析的數字都是以“OX”或“OX”開頭的十進制數或十六進制數 時,才可以不指定基數。

JavaScript 1.0不支持NaN,所以在這個版本中,當parseInt()不能解析s時,返回0而不是NaN。在JavaScript 1.0中,parseInt()不能區分錯誤的輸入與合法的輸入“0”。

參閱

isNaN( ), parseFloat( )

 

 

 

isFinite( )

判斷一個數字是否是有限的


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

isFinite(n)

參數

n

要檢測的數字。

返回值

如果n是有限數字(或者可以轉換為有限數字),那么返回值就是true。否則,如果只是NaN(非數字),或者是正、負無窮大的數,則返回值就是false。

參閱

Infinity, isNaN( ), NaN, Number.NaN, Number.NEGATIVE_INFINITY, Number.POSITIVE_INFINITY

 

 

 

isNaN( )

檢測非數字值

 


 

   

 

可用性

 

JavaScript 1.1; JScript 1.0; ECMAScript v1

 

語法

 

isNaN(x)

 

參數

 

x

 

要檢測的值。

 

返回值

 

如果x是特殊的非數字值NaN(或者能被轉換為這樣的值),返回值就是true。如果 x是其他值,返回值是false。

 

描述

 

isNaN()可以通過檢測參數來判斷值是否是NaN,該值表示一個非法的數字(如被0 除后得到結果)。這個函數是必需的,因為把NaN與任何值(包括它自身)進行比較 得到的結果都是false,所以要檢測一個值是否是NaN,不能使用==或===運算符

 

isNaN()通常用於檢測方法parseFloat()和parseInt()的結果,以判斷它們表示的是否是合法數字。也可以用isNaN()來檢測算術錯誤,如用0作除數。

 

示例

 

isNaN(0); // 返回 false

 

isNaN(0/0); // 返回 true

 

isNaN(parseInt("3")); // 返回 false

 

isNaN(parseInt("hello")); // 返回 true

 

isNaN("3"); // 返回 false

 

isNaN("hello"); // 返回 true

 

isNaN(true); // 返回 false

 

isNaN(undefined); // 返回 true

 

參閱

 

isFinite( ), NaN, Number.NaN, parseFloat( ), parseInt( )

 

Array.toString( )

將數組轉換成一個字符串


   

可用性

JavaScript 1.1; JScript 2.0; ECMAScript v1

繼承/覆蓋

Overrides Object.toString( )

語法

array.toString( )

返回值

array的字符串表示。

拋出

TypeError

調用該方法時,若對象不是Array,則拋出該異常。

描述

數組的toString()方法將把數組轉換成一個字符串,並且返回這個字符串。當數組 用於字符串環境中時,JavaScript會調用這一方法將數組自動轉換成一個字符串。但 在某些情況下,需要明確地調用這個方法。

toString()在把數組轉換成字符串時,首先要將數組的每個元素都轉換成字符串 (通過調用這些元素的toString()方法)。當每個元素都被轉換成字符串時,它就以 列表的形式輸出這些字符串,字符串之間用逗號分隔。返回值與沒有參數的join() 方法返回的字符串相同。

Bug

在Netscape實現中,如果把語言版本明確地設置為1.2,toString()將會返回用逗號和空格分隔的數組元素列表,這個列表采用數組直接量表示法,用方括號括起元素。例如,在把<script>標記的language性質明確地設置為“JavaScript l.2”時, 就會發生這種情況。

參閱

Array.toLocaleString( ), Object.toString( )

Boolean.toString( )

將布爾值轉換成字符串


   

可用性

JavaScript 1.1; JScript 2.0; ECMAScript v1

繼承/覆蓋

覆蓋 Object.toString( )

語法

b.toString( )

返回值

根據原始布爾值或者Boolean對象b存放的值返回字符串"true"或"false"。

拋出

TypeError

如果調用該方法時,對象不是Boolean,則拋出該異常。

Date.toDateString( )

返回Date對象日期部分作為字符串


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

語法

date.toDateString( )

返回值

date的日期部分的字符串表示,由實現決定,可以讀懂,以本地時間表示。

參閱

Date.toLocaleDateString( ), Date.toLocaleString( ), Date.toLocaleTimeString( ), Date.toString( ),Date.toTimeString( )

Date.toGMTString( )

將Date轉換為世界時字符串


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1; deprecated by ECMAScript v3

語法

date.toGMTString( )

返回值

Date對象date所指定的日期和時間的字符串表示。這個日期在轉換成字符串之前由本地時區轉換成了GMT時區。

描述

不贊成使用方法toGMTString(),而贊同使用Date.toUTCString()。

從ECMAScriptv3起,JavaScript的實現不再要求使用該函數,而用toUTCString()代替它。

參閱

Date.toUTCString( )

Date.toLocaleDateString( )

返回Date對象的日期部分作為本地已格式化的字符串


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

語法

date.toLocaleDateString( )

返回值

date的日期部分的字符串表示,由實現決定,可以讀懂,以本地時間表示,根 據本地規約格式化。

參閱

Date.toDateString( ), Date.toLocaleString( ), Date.toLocaleTimeString( ), Date.toString( ), Date.toTimeString( )

 

 

 

 

Date.toLocaleString( )

將Date轉換為本地已格式化的字符串


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

date.toLocaleString( )

返回值

Date對象dace指定的日期和時間的字符串表示。該日期和時間用本地時間區表示, 根據本地規約格式化。

用法

方法toLocaleString()可以將日期轉換成用本地時間區表示的字符串。該方法的日期和時間格式還使用地方規約,所以在不同平台上以及不同國家之間,日期和時間的格式都有所不同。它返回的字符串格式通常都是用戶想要的日期和時間格式。

參閱

Date.toLocaleDateString( ), Date.toLocaleTimeString( ), Date.toString( ), Date.toUTCString( )

 

Date.toLocaleTimeString( )

返回Date對象的時間部分作為本地已格式化的字符串


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

語法

date.toLocaleTimeString( )

返回值

date的時間部分的字符串表示,由實現決定,可以讀取的,以本地時區表示,根 據本地規約格式化。

參閱

Date.toDateString( ), Date.toLocaleDateString( ), Date.toLocaleString( ), Date.toString( ), Date.toTimeString( )

 

Date.toString( )

將Date轉換為字符串


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1 覆蓋 Object.toString( )

語法

date.toString( )

返回值

date的字符串表示,是人們可以讀取的,用本地時間表示。

描述

方法toStrzng()返回一個人們可以讀取的、由實現決定的日期的字符串表示。它與 toUTCString()的不同,toString()以本地時間表示日期。而它與toLocaleString()的不同之處在於它不使用地方規約采用的形式表示日期和時間。

參閱

Date.parse( ), Date.toDateString( ), Date.toLocaleString( ), Date.toTimeString( ), Date.toUTCString( )

 

Date.toTimeString( )

返回Date對象日期部分作為字符串


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

語法

date.toTimeString( )

返回值

date的時間部分的字符串表示,由實現決定,可以讀取;以本地時間表示。

參閱

Date.toString( ), Date.toDateString( ), Date.toLocaleDateString( ), Date.toLocaleString( ),Date.toLocaleTimeString( )

 

Date.toUTCString( )

將Date轉換為字符串(世界時)

     
     

   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.toUTCString( )

返回值

date的字符串表示,可以讀取,用世界時表示。

描述

方法toUTCString()返回一個人們可以讀取的、由實現決定的日期的字符串表示。它以世界時表示。

參閱

Date.toLocaleString( ), Date.toString( )

Error.toString( )

把Error對象轉換成字符串


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

繼承/覆蓋

覆蓋 Object.toString( )

語法

error.toString( )

返回值

實現定義的字符串。ECMAScript標准除了規定該方法的返回值是字符串外,沒有再 做其他規定。尤其是,它不要求返回的字符串包含錯誤名或錯誤消息。

Function.toString( )

把函數轉換成字符串


   

可用性

JavaScript 1.0; JScript 2.0; ECMAScript v1

語法

function.toString( )

返回值

表示函數的字符串。

拋出

TypeError

如果調用該函數的對象不是Function,則拋出該異常。

描述

Function對象的方法toString()可以以一種與實現相關的方式將函數轉換成字符串。 在Netscape實現中,該方法返回一個含有有效JavaScript代碼的字符串,即包括關鍵字function、參數列表和函數的完整主體的代碼。

Number.toLocaleString( )

把數字轉換成本地格式的字符串


   

可用性

JavaScript 1.5; JScript 5.5, ECMAScript v3

語法

number.toLocaleString( )

返回值

數字的字符串表示,由實現決定,根據本地規范進行格式化。可能影響到小數點或千分位分隔符采用的標點符號。

拋出

TypeError

調用該方法的對象不是Number時拋出的異常。

參閱

Number.toExponential( ), Number.toFixed( ), Number.toPrecision( ), Number.toString( )

 

 

Number.toString( )

將—個數字轉換成字符串


   

可用性

JavaScript 1.1; JScript 2.0, ECMAScript v1

繼承/覆蓋

覆蓋 Object.toString( )

語法

number.toString(radix)

參數

radix

可選的參數,指定表示數字的基數,是2~36之間的整數。如果省略了該參數, 使用基數10。但要注意,如果該參數是10以外的其他值,則ECMAScript標准 允許實現返回任意值。

返回值

數字的字符串表示。

拋出

TypeError

調用該方法的對象不是Number時拋出的異常。

描述

Number對象的方法toString()可以將數字換成字符串。當省略了radix參數或指定它的值為10時,該數字將被轉換成基數為10的字符串。如果radix是其他值,該方法將返回由實現定義的字符串。Netscape實現和JScript 3.0后的Microsoft實現都支持radix參數,並返回以指定基數表示的字符串。

參閱

Number.toExponential( ), Number.toFixed( ), Number.toLocaleString( ), Number.toPrecision( )

Object.toString( )

定義一個對象的字符串表示


   

可用性

JavaScript 1.0; JScript 2.0; ECMAScript v1

語法

object.toString( )

返回值

表示對象的字符串。

描述

這里的方法toString()並不是在JavaScript程序中經常顯示調用的那個toString()方法。它是在對象中定義的一個方法,當系統需要把對象轉換成字符串時就會調用它。

當在字符串環境中使用對象時,JavaScript系統就會調用toString()方法把那個對象轉換成字符串。例如,假定—個函數期望得到的參數是字符串,那么把對象傳遞給它時,系統就會將這個對象轉換成字符串:

alert(my_object);

同樣,在用運算符“+”連接字符串時,對象也會被轉換成字符串:

var msg = 'My object is: ' + my_object;

調用方法toStrlng()時不給它傳遞任何參數,它返回的應該是一個字符串。要使這個字符串有用,它的值就必須以調用toString()方法的對象的值為基礎。

當用JavaScript自定義一個類時,為這個類定義一個toString()方法很有用。如果沒有給它定義toString()方法,那么這個對象將繼承Object類的默認toString()方法。這個方法返回的字符串形式如下:

[object class]

這里,class是一個對象類,其值可以是“Object”、“String”、“Number”、“Function”、 “Window”、“Document”,等等。這種行為有時對確定未知對象的類型或類有用。但由於大多數對象都有自定義的tostring()版本,所以必須明確地對對象o調用 Object.toString(),代碼如下所示:

Object.prototype.toString.apply(o);

注意,這種識別未知對象的方法只適用於內部對象。如果你定義了自己的對象類,那么它的類是“Object”。在這種情況下,可以用Obiect.constructor屬性獲取更多有關對象的信息。

在調試JavaScript程序時,toString()方法非常有用,使用它可以輸出對象,查看它們的值。因此,為你創建的每個對象類都定義toString()方法很有用。

雖然tostring()方法通常由系統自動調用,但你也可以自己調用它。例如,在JavaScript不能自動把對象轉換成字符串的環境中,可以明確地調用toString()方法來實現這一點:

y = Math.sqrt(x); // 計算一個數

ystr = y.toString( ); // 轉換為—個字符串

注意,在這個例子中,數字具有內部的toStrlng()方法,可以用該方法進行強制性的轉換。

在其他的環境中,即使JavaScript可以自動地進行轉換,你也可以調用toString()方法,因為對toString()的明確調用可以使代碼更加清晰:

alert(my_obj.toString( ));

參閱

Object.constructor, Object.toLocaleString( ), Object.valueOf( )

RegExp.toString( )

把正則表達式轉換成字符串


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v3

繼承/覆蓋

覆蓋 Object.toString( )

語法

regexp.toString( )

返回值

regexp的字符串表示。

拋出

TypeError

調用該方法的對象不是RegExp時,拋出該異常。

描述

RegExp.toString()方法將以正則表達式直接量的形式返回正則表達式的字符串表示。

注意,不允許用實現添加轉義序列,這樣可以確保返回的字符串是合法的正則表達式直接量。考慮由表達式new RegExp("/","g")創建的正則表達式。RegExp.toString()的一種實現對該正則表達式返回“///g”,此外它還能添加轉義序列,返回“/\//g”。

String.toString( )

返回字符串


   

可用性

JavaScript 1.0; JScript 1.0, ECMAScript v1 Overrides Object.toString( )

語法

string.toString( )

返回值

string的原始字符串值。一般不會調用該方法。

拋出

TypeError

調用該方法的對象不是String時拋出該異常。

參閱

String.valueOf( )

Object(對象超類)

Object

含有所有JavaScript對象的特性的超類

Object.constructor

對象的構造函數

Object.hasOwnProperty( )

檢查屬性是否被繼承

Object.isPrototypeOf( )

一個對象是否是另一個對象的原型

Object.propertyIsEnumerable( )

是否可以通過for/in循環看到屬性

Object.toLocaleString( )

返回對象的本地字符串表示

Object.toString( )

定義一個對象的字符串表示

Object.valueOf( )

指定對象的原始值

Object

含有所有JavaScript對象的特性的超類


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

構造函數

new Object( )

new Object(value)

參數

value

可選的參數,聲明了要轉換成Number對象、Boolean對象或String對象的原始值(即數字、布爾值或字符串)。JavaScript 1.1之前的版本和ECMAScript Vl不支持該對象。

返回值

如果沒有給構造函數傳遞value參數,那么它將返回一個新創建的Object實例。如果指定了原始的value參數,構造函數將創建並返回原始值的包裝對象,即Number對象、Boolean對象或String對象。當不使用new運算符,將Object()構造函數作為函數調用時,它的行為與使用new運算符時一樣。

屬性

constructor

對一個JavaScript函數的引用,該函數是對象的構造函數。

方法

hasOwnProperty( )

檢查對象是否有局部定義的(非繼承的)、具有特定名字的屬性。

isPrototypeOf( )

檢查對象是否是指定對象的原型。

propertyIsEnumerable( )

檢查指定的屬性是否存在,以及是否能用for/in循環枚舉。

toLocaleString( )

返回對象地方化的字符串表示。該方法的默認實現只調用toString()方法,但子類可以覆蓋它,提供本地化。

toString( )

返回對象的字符串表示。Object類提供的該方法的實現相當普通,並且沒有提供更多有用的信息。Object的子類通過定義自己的toString()方法覆蓋了這一方法(toString()方法能夠生成更有用的結果)。

valueOf( )

返回對象的原始值(如果存在)。對於類型為Object的對象,該方法只返回對象自身。Object的子類(如Number和Boolean)覆蓋了該方法,返回的是與對象相關的原始數值。

描述

Object類是JavaScript語言的內部數據類型。它是其他JavaScript對象的超類,因此其他對象都繼承了Object類的方法和行為。

除了用上面所示的Object()構造函數,還可以用Object直接量語法創建並初始化對象。

參閱

Array, Boolean, Function, Function.prototype, Number, String

 

Object.constructor

對象的構造函數


   

可用性

JavaScript 1.1; JScript 2.0; ECMAScript v1

語法

object.constructor

描述

對象的constructor屬性引用了該對象的構造函數。例如,如果用Array()構造函 數創建一個數組,那么a.constructor引用的就是Array:

a = new Array(1,2,3); // 創建一個對象

a.constructor == Array //計算結果為true

onstructor屬性常用於判斷未知對象的類型。給定了一個未知的值,就可以使用typeof運算符來判斷它是原始的值還是對象。如果它是對象,就可以使用constructor屬性來判斷對象的類型。例如,下面的函數用來判斷一個給定的值是否是數組:

function isArray(x) {

return ((typeof x == "object") && (x.constructor == Array));

}

但是要注意,雖然這種方法適用於JavaScript核心語言的內部對象,但對於“主對象”,如Window這樣的客戶端JavaScript對象,這種方法就不一定適用了。Object.toString()方法的默認實現提供了另一種判斷未知對象類型的方法。

參閱

Object.toString( )

   
       

 

 

Object.hasOwnProperty( )

檢查屬性是否被繼承


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

語法

object.hasOwnProperty(propname)

參數

propname

一個字符串,包含object的屬性名。

返回值

如果object有propname指定的非繼承屬性,則返回true。如果object沒有名為 propname指定的屬性,或者它從原型對象繼承了這一屬性,則返回false。

描述

JavaScript對象既可以有自己的屬性,又可以從原型對象繼承屬性。 hasOwnProperty()方法提供了區分繼承屬性和非繼承的局部屬性的方法。

示例

var o = new Object( ); // 創建對象

o.x = 3.14; // 定義非繼承的局部屬性y

o.hasOwnProperty("x"); // 返回 true: x 是O的局部屬性

o.hasOwnProperty("y"); // 返回 false: o 沒有屬性y

o.hasOwnProperty("toString"); // 返回 false: toString屬性是繼承的

參閱

Function.prototype, Object.propertyIsEnumerable( )

Object.isPrototypeOf( )

一個對象是否是另一個對象的原型


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

語法

object.isPrototypeOf(o)

參數

o

任意對象。

返回值

如果object是O的原型,則返回true。如果o不是對象,或者object不是o的原 型,則返回false。

描述

JavaScript對象繼承了原型對象的屬性。一個對象的原型是通過用於創建並初始化該對象的構造函數的prototype屬性引用的。isPrototypeOf()方法提供了判斷一個對象是否是另一個對象原型的方法。該方法可以用於確定對象的 類。

示例

var o = new Object( ); // 創建一個對象

Object.prototype.isPrototypeOf(o) // true: o 是一個對象

Function.prototype.isPrototypeOf(o.toString); // true: toString 是一個函數

Array.prototype.isPrototypeOf([1,2,3]); // true: [1,2,3] 是一個數組

//下面是執行同樣測試的另一種方法

(o.constructor == Object); // true: o was created with Object( ) constructor

(o.toString.constructor == Function); // true: o.toString is a function

/原型則對象本身於原型對象。下面的調用返回true

//說明函數繼 Function.prototype和Object.prototyp屬性.

Object.prototype.isPrototypeOf(Function.prototype);

參閱

Function.prototype, Object.constructor

Object.propertyIsEnumerable( )

是否可以通過for/in循環看到屬性


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

語法

object.propertyIsEnumerable(propname)

參數

propname

一個字符串,包含object原型的名字。

返回值

如果object具有名為propname的非繼承屬性,而且該屬性是可枚舉的(即用for/in循環可以枚舉出它),則返回true。

描述

用for/in語句可以遍歷一個對象“可枚舉”的屬性。但並非—個對象的所有屬性都是可枚舉的,通過JavaScript代碼添加到對象的屬性是可枚舉的,而內部對象的預定義屬性(如方法)通常是不可枚舉的。propertylsEnumerable()方法提供了區分可枚舉屬性和不可枚舉屬性的方法。但要注意,ECMAScript標准規定,propertyIsEnumerable()方法不檢測原型鏈,這意味着它只適用於對象的局部屬性,不能檢測繼承屬性的可枚舉性。

示例

var o = new Object( ); // 創建一個對象

o.x = 3.14; // 定義—個屬性

o.propertyIsEnumerable("x"); // true屬性x是局部的、可枚舉的

o.propertyIsEnumerable("y"); //false:o沒有屬性y

o.propertyIsEnumerable("toString"); //false:toStrlng屬性是繼承的

Object.prototype.propertyIsEnumerable("toString"); // false: 枚舉的

Bug

當標准限制propertylsEnumerable()方法只能檢測非繼承屬性時,明顯是錯的。 Internet Explorer 5.5按標准實現了該方法。Nestacpe 6.0實現的propertyIsEnumerable()方法考慮了原型鏈。雖然這種方法可取,但它與標准沖突,所以Netscape 6.1修改了它,以便與IE 5.5匹配。由於標准中有這個錯誤,因此該方法不是那么有用。

參閱

Function.prototype, Object.hasOwnProperty( )

Object.toLocaleString( )

返回對象的本地字符串表示


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

語法

object.toString( )

返回值

表示對象的字符串。

描述

該方法用於返回對象的字符串表示,本地化為適合本地的形式。Object類提供的默認的toLocaleString()方法只調用toString()方法,返回非本地化的字符串。但其他類(包括Array、Date和Number)定義了自己的toLocaleString()版本,指定本地化字符串的轉換。在定義自己的類時,也可以覆蓋該方法。

參閱

Array.toLocaleString( ), Date.toLocaleString( ), Number.toLocaleString( ), Object.toString( )

Object.toString( )

定義一個對象的字符串表示


   

可用性

JavaScript 1.0; JScript 2.0; ECMAScript v1

語法

object.toString( )

返回值

表示對象的字符串。

描述

這里的方法toString()並不是在JavaScript程序中經常顯示調用的那個toString()方法。它是在對象中定義的一個方法,當系統需要把對象轉換成字符串時就會調用它。

當在字符串環境中使用對象時,JavaScript系統就會調用toString()方法把那個對象轉換成字符串。例如,假定—個函數期望得到的參數是字符串,那么把對象傳遞給它時,系統就會將這個對象轉換成字符串:

alert(my_object);

同樣,在用運算符“+”連接字符串時,對象也會被轉換成字符串:

var msg = 'My object is: ' + my_object;

調用方法toStrlng()時不給它傳遞任何參數,它返回的應該是一個字符串。要使這個字符串有用,它的值就必須以調用toString()方法的對象的值為基礎。

當用JavaScript自定義一個類時,為這個類定義一個toString()方法很有用。如果沒有給它定義toString()方法,那么這個對象將繼承Object類的默認toString()方法。這個方法返回的字符串形式如下:

[object class]

這里,class是一個對象類,其值可以是“Object”、“String”、“Number”、“Function”、 “Window”、“Document”,等等。這種行為有時對確定未知對象的類型或類有用。但由於大多數對象都有自定義的tostring()版本,所以必須明確地對對象o調用 Object.toString(),代碼如下所示:

Object.prototype.toString.apply(o);

注意,這種識別未知對象的方法只適用於內部對象。如果你定義了自己的對象類,那么它的類是“Object”。在這種情況下,可以用Obiect.constructor屬性獲取更多有關對象的信息。

在調試JavaScript程序時,toString()方法非常有用,使用它可以輸出對象,查看它們的值。因此,為你創建的每個對象類都定義toString()方法很有用。

雖然tostring()方法通常由系統自動調用,但你也可以自己調用它。例如,在JavaScript不能自動把對象轉換成字符串的環境中,可以明確地調用toString()方法來實現這一點:

y = Math.sqrt(x); // 計算一個數

ystr = y.toString( ); // 轉換為—個字符串

注意,在這個例子中,數字具有內部的toStrlng()方法,可以用該方法進行強制性的轉換。

在其他的環境中,即使JavaScript可以自動地進行轉換,你也可以調用toString()方法,因為對toString()的明確調用可以使代碼更加清晰:

alert(my_obj.toString( ));

參閱

Object.constructor, Object.toLocaleString( ), Object.valueOf( )

Object.valueOf( )

指定對象的原始值


   

可用性

JavaScript 1.1; JScript 2.0; ECMAScript v1

語法

object.valueOf( )

返回值

與對象object相關的原始值(如果存在)。如果沒有值與object相關,則返回對象自身。

描述

對象的valueOf()方法返回的是與那個對象相關的原始值(如果這樣的值存在)。對於類型為Object的對象來說,由於它們沒有原始值,因此該方法返回的是這些對象自身。

對於類型為Number的對象,valueOf()返回該對象表示的原始數值。同樣,對於Boolean對象來說,該方法返回與對象相關的布爾值。對於String對象來說,返回與 對象相關的字符串。

其實,幾乎沒有必要自己調用valueOf()方法。在期望使用原始值的地方,JavaScript會自動地執行轉換。事實上,由於方法valueOf()是被自動調用的,因此要分辨究 竟是原始值還是與之相應的對象非常困難。雖然使用typeof運算符可以顯示字符串和String對象之間的區別,但在實際應用中,它們在JavaScript代碼中的作用是一樣的。

Number對象、Boolean對象和String對象的valueOf()方法可以將這些包裝對象轉 換成它們表示的原始值。在調用構造函數Obioct()時,如果把數字、布爾值或字符 串作為參數傳遞給它,它將執行相反的操作,即將原始值打包成相應的對象。幾乎在所有的環境中,JavaScript都可以自動地實現原始值和對象之間的轉換,所以一般說 來沒有必要用這種方法調用構造函數Object()。

在某些環境中,你可以為自己的對象定制一個valueOf()方法。例如,你可以定義 一個JavaScript對象來表示復數(即一個實數加一個虛數)。作為這個對象的一部分, 要給它定義執行復數的加法、乘法等其他運算的方法。不過,還有一種功能是你想要的,即像處理常規實數一樣處理復數,舍棄它的虛數部分。可以使用下面的代碼實現 這一點:

Complex.prototype.valueOf = new Function("return this.real");

有了這個為Complex對象定義的valueOf()方法,就可以把復數對象傳遞給方法 Math.sqrt(),它將計算復數的實數部分的平方根。

參閱

Object.toString( )

Arguments(函數參數對象)

arguments[ ]

函數參數的數組

 

Arguments

一個函數的參數和其他屬性

 

Arguments.callee

當前正在運行的函數

 

Arguments.length

傳遞給函數的參數的個數

 

arguments[ ]

函數參數的數組


   

可用性

JavaScript 1.1; JScript 2.0; ECMAScript v1

語法

arguments

描述

arguments[]數組只在函數體內定義。在函數體內,arguments引用該函數的 Arguments對象。該對象有帶編號的屬性,並作為一個存放傳遞給函數的所有參數的 數組。標識符arguments本質上是一個局部變量,在每個函數中都會被自動聲明並 初始化。它只在函數體中才能引用Arguments對象,在全局代碼中沒有定義。

參閱

Arguments

 

 

Arguments

一個函數的參數和其他屬性

 

 

           
           

   

可用性

JavaScript 1.1; JScript 2.0; ECMAScript v1

繼承/覆蓋

繼承於 Object

語法

arguments

arguments[n]

元素

Arguments對象只在函數體中定義。雖然技術上說來,它不是數組,但Arguments對 象有帶編號的屬性,這些屬性可以作為數組元素,而且它有length屬性,該屬性聲 明了數組元素的個數。它的元素是作為參數傳遞給函數的值。元素0是第—個參數, 元素1是第二個參數,以此類推。所有作為參數傳遞的值都會成為Arguments對象的 數組元素,無論函數聲明中是否有這些參數的名字。

屬性

callee

對當前正在執行的函數的引用。

length

傳遞給函數的參數個數,同時也是Arguments對象中的數組元素個數。

描述

當一個函數被調用時,會為該函數創建一個Arguments對象,局部變量arguments也 會自動地初始化以便引用那個Arguments對象。Arguments對象的主要用途是提供一 種方法,用來確定傳遞給函數的參數個數並且引用未命名的參數。除了數組元素和屬 性length之外,屬性callee可以使未命名的函數引用自身。

大多數情況下,可以將Arguments對象看做是具有callee屬性的數組。但它不是Array類的實例,Arguments.1ength屬性沒有Array.1ength屬性的專有行為,所以不能用它來改變數組的大小。

Arguments對象有一個非常特殊的特性。當函數具有命名的參數時,Arguments對象的數組元素是存放函數參數的局部變量的同義詞。Arguments對象和參數名提供了引用同一個變量的兩種不同方法。用參數名改變參數值,會改變用Arguments對象得到的值,改變用Arguments對象得到的參數值,也會改變用參數名得到的值。

參閱

Function

Arguments.callee

當前正在運行的函數


   

可用性

JavaScript 1.2; JScript 5.5; ECMAScript v1

語法

arguments.callee

描述

屬性arguments.callee引用當前正在運行的函數。它給未命名的函數提供了一種自 我引用的方式。該屬性只在函數體內被定義。

示例

//一個未命名的函數直接量使用callee屬性引用它自身

// 以便它能夠遞歸

var factorial = function(x) {

if (x < 2) return 1;

else return x * arguments.callee(x-1);

}

var y = factorial(5); // 返回 120

Arguments.length

傳遞給函數的參數的個數


   

可用性

JavaScript 1.1; JScript 2; ECMAScript v1

語法

arguments.length

描述

Arguments對象的屬性length聲明了傳遞給當前函數的參數的個數。該屬性只在函數體內被定義。

注意:這個屬性聲明的是實際傳遞給函數的參數個數,而不是期望傳遞的參數個數。還要注意該屬性不具備Array.length屬性的專有行為。

示例

// 使用Arguments對象來檢查是否正確傳遞了#參數

function check(args) {

var actual = args.length; //參數的實際個數

var expected = args.callee.length; //期望的參數個數

if (actual != expected) { //如果他們不匹配,則拋出異常

throw new Error("Wrong number of arguments: expected: " +

expected + "; actually passed " + actual);

}

}

//一個演示如何使用以上函數的函數

function f(x, y, z) {

check(arguments); // 檢查參數個數是否正確

return x + y + z; // 繼續使用函數

}

參閱

Array.length, Function.length

Array(數組對象)

Array

對數組的內部支持

Array.concat( )

連接數組

Array.join( )

將數組元素連接起來以構建一個字符串

Array.length

數組的大小

Array.pop( )

刪除並返回數組的最后一個元素

Array.push( )

給數組添加元素

Array.reverse( )

顛倒數組中元素的順序

Array.shift( )

將元素移出數組

Array.slice( )

返回數組的一部分

Array.sort( )

對數組元素進行排序

Array.splice( )

插入、刪除或替換數組的元素

Array.toLocaleString( )

把數組轉換成局部字符串

Array.toString( )

將數組轉換成一個字符串

Array.unshift( )

在數組頭部插入一個元素

Array

對數組的內部支持


   

可用性

JavaScript 1.1; JScript 2.0; ECMAScript v1

繼承/覆蓋

繼承於 Object

構造函數

new Array( )

new Array(size)

new Array(element0, element1, ..., elementn)

參數

size

期望的數組元素個數。返回的數組,1ength域將被設為size的值。

element0, ... elementn

兩個或多個值的參數列表。當使用這些參數來調用構造函數Array()時,新創建的數組的元素就會被初始化為這些值,它的length域也會被設置為參數的個數。

返回值

新創建並被初始化了的數組。如果調用構造函數Array()時沒有使用參數,那么返回的數組為空,length域為0。當調用構造函數時只傳遞給它一個數字參數,該構造函數將返回具有指定個數、元素為undefined的數組。當用其他參數調用Array{)時, 該構造函數將用參數指定的值初始化數組。當把構造函數作為函數調用,不使用new運算符時,它的行為與使用new運算符調用它時的行為完全一樣。

拋出

RangeError

當只傳遞給Array()構造函數一個整數參數size時,如果size是負數,或者大子232 -1,將拋出RangeError異常。

直接量語法

ECMAScript v3規定了數組直接量的語法,JavaScript 1.2和JScript 3.0實現了它。可以把—個用逗號分隔的表達式列表放在方括號中,創建並初始化—個數組。這些表達式的值將成為數組元素。例如:

var a = [1, true, 'abc'];

var b = [a[0], a[0]*2, f(x)];

屬性

length

一個可讀可寫的整數,聲明了數組中的元素個數。如果數組中的元素不連續,它就是比數組中的最后—個元素的下標大1的整數。改變這個屬性的值將截斷或擴展數組。

方法

concat( )

給數組添加元素。

join( )

將數組中所有元素都轉換為字符串,然后連接在一起。

pop( )

從數組尾部刪除一個項目。

push( )

把一個項目添加到數組的尾部。

reverse( )

在原數組上顛倒數組中元素的順序。

shift( )

將數組的頭部元素移出數組頭部。

slice( )

返回一個數組的子數組。

sort( )

在原數組上對數組元素進行排序。

splice( )

插入、刪除或替換一個數組元素。

toLocaleString( )

把數組轉換為一個局部字符串。

toString( )

把數組轉換為字符串。

unshift( )

在數組的頭部插入一個元素。

描述

數組是JavaScript的基本語句特性。

參閱

 

Array.concat( )

連接數組


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v3

語法

array.concat(value, ...)

參數

value, ...

要增加到array中的值,可以是任意多個。

返回值

一個新數組,是

描述

方法concat()將創建並返回一個新數組,這個數組是將所有參數都添加到array中生成的。它並不修改array。如果要進行concat()操作的參數是一個數組,那么添加的是數組中的元素,而不是數組。

示例

var a = [1,2,3];

a.concat(4, 5) //返回 [1,2,3,4,5]

a.concat([4,5]); //返回 [1,2,3,4,5]

a.concat([4,5],[6,7]) //返回 [1,2,3,4,5,6,7]

a.concat(4, [5,[6,7]]) //返回 [1,2,3,4,5,[6,7]]

參閱

Array.join( ), Array.push( ), Array.splice( )

   
       

 

 

Array.join( )

將數組元素連接起來以構建一個字符串


   

可用性

JavaScript 1.1; JScript 2.0; ECMAScript v1

語法

array.join( )

array.join(separator)

參數

separator

在返回的字符串中用於分隔數組元素的字符或字符串,它是可選的。如果省略了這個參數,用逗號作為分隔符。

返回值

—個字符串,通過把array的每個元素轉換成字符串,然后把這些字符串連接起來,在兩個元素之間插入separator字符串而生成。

描述

方法join()將把每個數組元素轉換成一個字符串,然后把這些字符串連接起來,在兩個元素之間插入指定的separator字符串。返回生成的字符串。

可以用String對象的split()方法執行相反的操作,即把一個字符串分割成數組元素。

示例

a = new Array(1, 2, 3, "testing");

s = a.join("+"); // s 是字符串"1+2+3+testing"

參閱

String.split( )

Array.length

數組的大小


   

可用性

JavaScript 1.1, JScript 2.0; ECMAScript v1

語法

array.length

描述

數組的length屬性總是比數組中定義的最后一個元素的下標大一。對於那些具有連續元素,而且以元素0開始的常規數組來說,屬性length聲明了數組中的元素個數。

數組的length屬性在用構造函數Array()創建數組時初始化。給數組添加新元素時,如果必要,將更新length的值:

a = new Array( ); // a.length 被初始化為 0

b = new Array(10); // b.length 被初始化為 10

c = new Array("one", "two", "three"); // c.length 被初始化為 3

c[3] = "four"; // c.length 被更新為 4

c[10] = "blastoff"; // c.length 變為 11

設置屬性length的值可以改變數組的大小。如果設置的值比它的當前值小,數組將被截斷,其尾部的元素將丟失。如果設置的值比它的當前值大,數組將增大,新元素被添加到數組尾部,它們的值為undefined。

Array.pop( )

刪除並返回數組的最后一個元素


   

可用性

JavaScript 1.2; JScript 5.5; ECMAScript v3

語法

array.pop( )

返回值

array的最后一個元素。

描述

方法pop()將刪除array的最后一個元素,把數組長度減1,並且返回它刪除的元素的值。如果數組已經為空,則pop()不改變數組,返回undefined。

示例

方法pop()和方法push()可以提供先進后出(FILO)棧的功能。例如:

var stack = []; // 棧:[]

stack.push(1, 2); // 棧: [1,2] 返回 2

stack.pop( ); // 棧: [1] 返回 2

stack.push([4,5]); // 棧: [1,[4,5]] 返回 2

stack.pop( ) // 棧: [1] 返回 [4,5]

stack.pop( ); // 棧: [] 返回 1

參閱

Array.push( )

Array.push( )

給數組添加元素


   

可用性

JavaScript 1.2; JScript 5.5; ECMAScript v3

語法

array.push(value, ...)

參數

value, ...

要添加到array尾部的值,可以是一個或多個。

返回值

把指定的值添加到數組后的新長度。

描述

方法push()將把它的參數順次添加到array的尾部。它直接修改array,而不是創 建——個新的數組。方法push()和方法pop()用數組提供先進后出棧的功能。參閱 “Array.pop()”中的示例。

Bug

在JavaScript的Netscape實現中,如果把語言版本明確地設置為1.2,該函數將返回 最后添加的值,而不是返回新數組的長度。

參閱

Array.pop( )

Array.reverse( )

顛倒數組中元素的順序


   

可用性

JavaScript 1.1; JScript 2.0; ECMAScript v1

語法

array.reverse( )

描述

Array對象的方法reverse()將顛倒數組中元素的順序。它在原數組上實現這一操 作,即重排指定的array的元素,但並不創建新數組。如果對array有多個引用,那么通過所有引用都可以看到數組元素的新順序。

示例

a = new Array(1, 2, 3); // a[0] == 1, a[2] == 3;

a.reverse( ); // Now a[0] == 3, a[2] == 1;

Array.shift( )

將元素移出數組


   

可用性

JavaScript 1.2; JScript 5.5; ECMAScript v3

語法

array.shift( )

返回值

數組原來的第一個元素。

描述

方法shift()將把array的第—個元素移出數組,返回那個元素的值,並且將余下 的所有元素前移一位,以填補數組頭部的空缺。如果數組是空的,shift()將不進行 任何操作,返回undefined。注意,該方法不創建新數組,而是直接修改原有的數組。

方法shift()和方法Array.pop()相似,只不過它在數組頭部操作,而不是在尾部 操作。該方法常常和unshift()一起使用。

示例

var a = [1, [2,3], 4]

a.shift( ); // 返回 1; a = [[2,3], 4]

a.shift( ); // 返回 [2,3]; a = [4]

參閱

Array.pop( ), Array.unshift( )

Array.slice( )

返回數組的一部分


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v3

語法

array.slice(start, end)

參數

start

數組片段開始處的數組下標。如果是負數,它聲明從數組尾部開始算起的位置。 也就是說,-1指最后一個元素,-2指倒數第二個元素,以此類推。

end

數組片段結束處的后一個元素的數組下標。如果沒有指定這個參數 包含從start開始到數組結束的所有元素。如果這個參數是負數, 從數組尾部開始算起的元素。

返回值

一個新數組,包含從start到end(不包括該元素)指定的array元素。

描述

方法slice()將返回數組的一部分,或者說是一個子數組。返回的數組包含從start 開始到end之間的所有元素,但是不包括end所指的元素。如果沒有指定end,返回 的數組包含從start開始到原數組結尾的所有元素。

注意:該方法並不修改數組。如果想刪除數組中的一段元素,應該使用方法Array.splice。

示例

var a = [1,2,3,4,5];

a.slice(0,3); // 返回 [1,2,3]

a.slice(3); // 返回 [4,5]

a.slice(1,-1); // 返回 [2,3,4]

a.slice(-3,-2); // 返回 [3]; IE 4存在的Bug: 返回[1,2,3]

Bug

在Internet Explorer 4中,參數start不能為負數。

參閱

Array.splice( )

Array.sort( )

對數組元素進行排序


   

可用性

JavaScript 1.1; JScript 2.0; ECMAScript v1

語法

array.sort( ) array.sort(orderfunc)

參數

orderfunc

用來指定按什么順序進行排序的函數,可選。

返回值

對數組的引用。注意,數組在原數組上進行排序,不制作副本。

描述

方法sort()將在原數組上對數組元素進行排序,即排序時不創建新的數組副本。如 果調用方法sort()時沒有使用參數,將按字母順序(更為精確地說,是按照字符編 碼的順序)對數組中的元素進行排序。要實現這一點,首先應把數組的元素都轉換成 字符串(如果有必要的話),以便進行比較。

如果想按照別的順序進行排序,就必須提供比較函數,該函數要比較兩個值,然后返 回一個用於說明這兩個值的相對順序的數字。比較函數應該具有兩個參數a和b,其返回值如下:

  • 如果根據你的評判標准,a小於b,在排序后的數組中a應該出現在b之前,就返回一個小於0的值。
  • 如果a等於b,就返回0。
  • 如果a大於b,就返回一個大於0的值。

注意,數組中undefined的元素都排列在數組末尾。即使你提供了自定義的排序函數 也是這樣,因為undefined值不會被傳遞給你提供的orderfunc。

示例

下面的代碼展示了如何編寫按數字順序,而不是按字母順序對數組進行排序的比較函數:

// 按照數字順序排序的排序函數

function numberorder(a, b) { return a - b; }

a = new Array(33, 4, 1111, 222);

a.sort( ); // 按照字母順序的排序結果為: 1111, 222, 33, 4

a.sort(numberorder); // 按照數字順序的排序結果為: 4, 33, 222, 1111

Array.splice( )

插入、刪除或替換數組的元素


   

可用性

JavaScript 1.2; JScript 5.5; ECMAScript v3

語法

array.splice(start, deleteCount, value, ...)

參數

start

開始插入和(或)刪除的數組元素的下標。

deleteCount

從start開始,包括start所指的元素在內要刪除的元素個數。這個參數是可選的,如果沒有指定它,splice()將刪除從start開始到原數組結尾的所有元素。

value, ...

要插人數組的零個或多個值,從start所指的下標處開始插入。

返回值

如果從array中刪除了元素,返回的是含有被刪除的元素的數組。但是要注意,由於存在—個bug,因此在JavaScriptl.2的Netscape實現中,返回的並不總是數組。

描述

方法splice()將刪除從start開始(包括start所指的元素在內)的零個或多個元素,並且用參數列表中聲明的一個或多個值來替換那些被刪除的元素。位於插入或刪除的元素之后的數組元素都會被移動,以保持它們與數組其他元素的連續性。注意, 雖然spllce()方法與slice()方法名字相似,但作用不同,方法splice()直接修改數組。

示例

讀了下面的例子,就很容易理解splice()的操作了:

var a = [1,2,3,4,5,6,7,8]

a.splice(4); // 返回 [5,6,7,8]; a is [1,2,3,4]

a.splice(1,2); // 返回 [2,3]; a is [1,4]

a.splice(1,1); // Netscape/JavaScript 1.2 返回 4 ,應該返回 [4]

a.splice(1,0,2,3); // Netscape/JavaScript 1.2 返回 undefined ,應該返回 []

Bug

方法splice()假定在各種情況下均返回一個包含已刪除元素的數組。但是,在 Netscape的JavaScript 1.2解釋器中,如果刪除的是單個元素,那么該方法返回的是 元素,而不是包含那個元素的數組。如果沒有刪除任何元素,它不是返回一個空數組, 而是什么都不返回。只要把語言版本明確地設置為1.2,JavaScript的Netscape實現 都有這種bug行為。

參閱

Array.slice( )

Array.toLocaleString( )

把數組轉換成局部字符串


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v1

繼承/覆蓋

覆蓋 Object.toLocaleString( )

語法

array.toLocaleString( )

返回值

數組array的局部字符串表示。

拋出

TypeError

調用該方法時,如果對象不是Array,則拋出異常。

描述

數組的方法toString()將返回數組的局部字符串表示。它首先調用每個數組元素的toLocaleString()方法,然后用地區特定的分隔符把生成的字符串連接起來,形成一個字符串。

參閱

Array.toString( ), Object.toLocaleString( )

Array.unshift( )

在數組頭部插入一個元素


   

可用性

JavaScript 1.2; JScript 5.5; ECMAScript v3

語法

array.unshift(value, ...)

參數

value, ...

要插入數組頭部的一個或多個值。

返回值

數組的新長度

描述

方法unshift()將把它的參數插入array的頭部,並將已經存在的元素順次地移到 較高的下標處,以便留出空間。該方法的第一個參數將成為數組新的元素0,如果還 有第二個參數,它將成為新的元素1,以此類推。注意,unshift()不創建新數組, 而是直接修改原有的數組。

示例

方法unshift()通常和方法shift()一起使用。例如:

var a = []; // a:[]

a.unshift(1); // a:[1] 返回 1

a.unshift(22); // a:[22,1] 返回 2

a.shift( ); // a:[1] 返回 22

a.unshift(33,[4,5]); // a:[33,[4,5],1] 返回 3

參閱

Array.shift( )

Boolean(布爾對象)

Boolean

對布爾值的支持

 

Boolean.toString( )

將布爾值轉換成字符串

 

Boolean.valueOf( )

Boolean對象的布爾值

 

Boolean

對布爾值的支持


   

可用性

JavaScript 1.1; JScript 2.0; ECMAScript v1

繼承/覆蓋

繼承於 Object

構造函數

new Boolean(value) //構造函數

Boolean(value) //轉換函數

參數

value

由布爾對象存放的值或者要轉換成布爾值的值

返回值

當作為一個構造函數(帶有運算符new)調用時,Boolean()將把它的參數轉換成一個布爾值,並且返回一個包含該值的Boolean對象。如果作為一個函數(不帶有運算符new)調用的,Boolean()只將它的參數轉換成一個原始的布爾值,並且返回這個值。

0、NaN、null、空字符串""和undefined都將轉換成false。其他的原始值,除了false(但包括字符串"false"),以及其他的對象和數組都會被轉換成true。

方法

toString( )

根據Boolean對象代表的布爾值返回"true"或"false"。

valueOf( )

返回Boolean對象中存放的原始布爾值。

描述

在JavaScript中,布爾值是一種基本的數據類型。Boolean對象是一個將布爾值打包的布爾對象。Boolean對象主要用於提供將布爾值轉換成字符串的toString()方法。 當調用toString()方法將布爾值轉換成字符串時(通常是由JavaScript隱式地調用),JavaScript會內在地將這個布爾值轉換成一個臨時的Boolean對象,然后調用這個對象的toString()方法。

參閱

Object

 

 

Boolean.toString( )

將布爾值轉換成字符串


   

可用性

JavaScript 1.1; JScript 2.0; ECMAScript v1

繼承/覆蓋

覆蓋 Object.toString( )

語法

b.toString( )

返回值

根據原始布爾值或者Boolean對象b存放的值返回字符串"true"或"false"。

拋出

TypeError

如果調用該方法時,對象不是Boolean,則拋出該異常。

     

 

Boolean.valueOf( )

Boolean對象的布爾值

 

 

             
             

   

可用性

JavaScript 1.1; JScript 2.0; ECMAScript v1

繼承/覆蓋

覆蓋方法 Object.valueOf( )

語法

b.valueOf( )

返回值

Boolean對象b存放的原始布爾值。

拋出

TypeError

如果調用該方法時,對象不是Boolean,則拋出該異常。

Date(日期/時間對象)

Date

操作日期和時間的對象

Date.getDate( )

返回一個月中的某一天

Date.getDay( )

返回一周中的某一天

Date.getFullYear( )

返回Date對象的年份字段

Date.getHours( )

返回Date對象的小時字段

Date.getMilliseconds( )

返回Date對象的毫秒字段

Date.getMinutes( )

返回Date對象的分鍾字段

Date.getMonth( )

返回Date對象的月份字段

Date.getSeconds( )

返回Date對象的秒字段

Date.getTime( )

返回Date對象的毫秒表示

Date.getTimezoneOffset( )

判斷與GMT的時間差

Date.getUTCDate( )

返回該天是一個月的哪一天(世界時)

Date.getUTCDay( )

返回該天是星期幾(世界時)

Date.getUTCFullYear( )

返回年份(世界時)

Date.getUTCHours( )

返回Date對象的小時字段(世界時)

Date.getUTCMilliseconds( )

返回Date對象的毫秒字段(世界時)

Date.getUTCMinutes( )

返回Date對象的分鍾字段(世界時)

Date.getUTCMonth( )

返回Date對象的月份(世界時)

Date.getUTCSeconds( )

返回Date對象的秒字段(世界時)

Date.getYear( )

返回Date對象的年份字段(世界時)

Date.parse( )

解析日期/時間字符串

Date.setDate( )

設置一個月的某一天

Date.setFullYear( )

設置年份,也可以設置月份和天

Date.setHours( )

設置Date對象的小時字段、分鍾字段、秒字段和毫秒字段

Date.setMilliseconds( )

設置Date對象的毫秒字段

Date.setMinutes( )

設置Date對象的分鍾字段和秒字段

Date.setMonth( )

設置Date對象的月份字段和天字段

Date.setSeconds( )

設置Date對象的秒字段和毫秒字段

Date.setTime( )

以毫秒設置Date對象

Date.setUTCDate( )

設置一個月中的某一天(世界時)

Date.setUTCFullYear( )

設置年份、月份和天(世界時)

Date.setUTCHours( )

設置Date對象的小時字段、分鍾字段、秒字段和毫秒字段(世界時)

Date.setUTCMilliseconds( )

設置Date對象的毫秒字段(世界時)

Date.setUTCMinutes( )

設置Date對象的分鍾字段和秒字段(世界時)

Date.setUTCMonth( )

設置Date對象的月份字段和天數字段(世界時)

Date.setUTCSeconds( )

設置Date對象的秒字段和毫秒字段(世界時)

Date.setYear( )

設置Date對象的年份字段

Date.toDateString( )

返回Date對象日期部分作為字符串

Date.toGMTString( )

將Date轉換為世界時字符串

Date.toLocaleDateString( )

回Date對象的日期部分作為本地已格式化的字符串

Date.toLocaleString( )

將Date轉換為本地已格式化的字符串

Date.toLocaleTimeString( )

返回Date對象的時間部分作為本地已格式化的字符串

Date.toString( )

將Date轉換為字符串

Date.toTimeString( )

返回Date對象日期部分作為字符串

Date.toUTCString( )

將Date轉換為字符串(世界時)

Date.UTC( )

將Date規范轉換成毫秒數

Date.valueOf( )

將Date轉換成毫秒表示

Date

操作日期和時間的對象


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

繼承/覆蓋

繼承於 Object

構造函數

new Date( )

new Date(milliseconds)

new Date(datestring)

new Date(year, month, day, hours, minutes, seconds, ms)

沒有參數的構造函數Date()將把創建的Date對象設置為當前的日期和時間。如果傳 遞給它的參數是一個數字,那么這個數字將被作為日期的內部數字表示,其單位是毫秒,就像方法getTime()的返回值一樣。如果傳遞給它的參數是一個字符串,它就 是日期的字符串表示,其格式就是方法Date.parse()接受的格式。否則,傳遞給該構造函數的參數是2~7個數字,它們分別指定了日期和時間的各個字段。除了前兩 個字段(年和月字段)外,其他所有字段都是可選的。注意,聲明這些日期和時間的 字段使用的都是本地時間,而不是UTC時間(類似於GMT時間)。參閱靜態方法 Date.UTC()。

Date()還可以作為普通函數被調用,而不帶有運算符new。以這種方式調用時, Date()將忽略傳遞給它的所有參數,返回當前日期和時間的字符串表示。

參數

milliseconds

期望的日期距1970年1月1日午夜(UTC)的毫秒數。例如,假定傳遞的參數值為5000,那么創建的Date對象代表日期的就是1970年1月1日午夜過5秒。

datestring

一個字符串,聲明了日期,也可以同時聲明時間。這個字符串的格式應該是方法Date.parse()能夠接受的。

year

年份,一個四位數。例如,2001指的是2001年。為了與早期的JavaScript實現 兼容,如果它的值在0~99之間,則給它加上1900。

month

月份,0(代表一月)到11(代表十二月)之間的一個整數。

day

一個月的某一天,1~31之間的一個整數。注意,這個參數將1作為它的最小值 而其他參數則以0為最小值。該參數是可選的。

hours

小時,0(午夜)到23(晚上11點)之間的一個整數。該參數是可選的。

minutes

分鍾,0~59之間的一個整數。該參數是可選的。

seconds

秒,0~59之間的一個整數。該參數是可選的。

ms

毫秒,0~999之間的一個整數。該參數是可選的。

方法

Date對象沒有可以直接讀寫的屬性,所有對日期和時間值的訪問都是通過方法執行的。Date對象的大多數方法采用兩種形式,一種是使用本地時間進行操作,另一種是使用世界(UTC或GMT)時進行操作。如果方法的名字中有“UTC",它將使用世界時進行操作。下面將這些方法對列在一起。例如,get[UTC]Day()指方法getDay() 和getUTCDay()。

只有Date對象才能調用Date方法,如果用其他類型的對象調用這些方法,將拋出異常TypeError。

get[UTC]Date( )

返回Date對象所代表的月中的某一天,采用本地時間或世界時。

get[UTC]Day( )

返回Date對象所代表的一周中的某一天,采用本地時間或世界時。

get[UTC]FullYear( )

返回日期中的年份,用四位數表示,采用本地時間或世界時。

get[UTC]Hours( )

返回Date對象的小時字段,采用本地時間或世界時。

get[UTC]Milliseconds( )

返回lDate對象的毫秒字段,采用本地時間或世界時。

get[UTC]Minutes( )

返回Date對象的分鍾字段,采用本地時間或世界時。

get[UTC]Month( )

返回Date對象的月份字段,采用本地時間或世界時。

get[UTC]Seconds( )

返回Date對象的秒字毆,采用本地時間或世界時。

getTime( )

返回Date對象的內部毫秒表示。注意,該值獨立於時區,所有沒有單獨的 getUTCtime()方法。

getTimezoneOffset( )

返回這個日期的本地時間和UTC表示之間的時差,以分鍾為單位。注意,是否是夏令時或在指定的日期中夏令時是否有效,將決定該方法的返回值。

getYear( )

返回Date對象的年份。一般不使用這種方法,推薦使用的方法是getFullYear()。

set[UTC]Date( )

設置Date對象的月中的某一天,采用本地時間或世界時。

set[UTC]FullYear( )

設置Date對象的年份字段(月份和天數字段可選),采用本地時間或世界時。

set[UTC]Hours( )

設置Date對象的小時字段(分鍾、秒和毫秒字段可選),采用本地時間或世界時。

set[UTC]Milliseconds( )

設置Date對象的毫秒字段,采用本地時間或世界時。

set[UTC]Minutes( )

設置Date對象的分鍾字段(秒和毫秒字段可選),采用本地時間或世界時。

set[UTC]Month( )

設置Date對象的月份字段(一個月的天數字段可選),采用本地時間或世界時。

set[UTC]Seconds( )

設置Date對象的秒字段(毫秒字段可選),采用本地時間或世界時。

setTime( )

使用毫秒的形式設置Date對象的各個字段。

setYear( )

設置Date對象的年份字段。該方法被反對使用,推薦使用的方法是setFullYear()。

toDateString( )

返回日期的日期部分的字符串表示,采用本地時間。

toGMTString( )

將Date對象轉換成一個字符串,采用GMT時間區。該方法被反對使用,推薦使 用的方法是toUTCString()。

toLocaleDateString( )

返回表示日期的日期部分的字符串,采用地方日期,使用地方日期格式化規約。

toLocaleString( )

將Date對象轉換成·個字符串,采用本地時間和地方日期的格式化規約。

toLocaleTimeString( )

返回日期的時間部分的字符串表示,采用本地時間,使用本地時間的格式化規約。

toString( )

將Date對象轉換成—個字符串,采用本地時間。

toTimeString( )

返回日期的時間部分的字符串表示,采用本地時間。

toUTCString( )

將Date對象轉換成一個字符串,采用世界時。

valueOf( )

將Date對象轉換成它的內部毫秒格式。

靜態方法

除了上面列出的實例方法之外,Date對象還定義了兩個靜態方法。這兩個方法由構造函數Date()自身調用,而不是由Date對象調用:

Date.parse( )

解析日期和時間的字符串表示,返回它的內部毫秒表示。

Date.UTC( )

返回指定的UTC日期和時間的毫秒表示。

描述

Date對象是JavaScript語言的一種內部數據類型。它由語法new Date()語法創建, 在前面的構造函數部分中已經說明了這種語法。

創建了Date對象后,就可以使用多種方法來操作它。大多數方法只能用來設置或者獲取對象的年份字段、月份字段、天數字段、小時字段、分鍾字段以及秒字段,采用本地時間或UTC(世界時或GMT)時間。方法toString()以及它的變種可以把日期轉換成人們能夠讀懂的字符串。所謂Date對象的內部表示就是距1970年1月1日午夜(GMT時間)的毫秒數,方法getTime()可以把Date對象轉換為內部表示,方法 setTime()可以把它從內部表示轉換成其他形式。采用標准的毫秒格式時,日期和時間由一個整數表示,這使得日期算術變得格外簡單。ECMAScript標准要求Date對象能夠把1970年1月1日前后10億天中的任意日期和時間表示為毫秒。這個范圍在正 負273~785年之間,所以JavaScript的時鍾不會超過275755年。

示例

一旦創建了Date對象,就可以用各種方法操作它:

d = new Date( ); // 獲取當前日期和時間

document.write('Today is: " + d.toLocaleDateString( ) + '. '); // 顯示日期

document.write('The time is: ' + d.toLocaleTimeString( )); // 顯示時間

var dayOfWeek = d.getDay( ); // 獲取一周中的第幾天

var weekend = (dayOfWeek == 0) || (dayOfWeek == 6); // 判斷是否是周末

Date對象的另一種常見用法是用某個時間的毫秒表示減去當前時間的毫秒表示來判斷 兩個時間的時差。下面的例子說明了這種用法:

<script language="JavaScript">

today = new Date( ); // 創建時間對象

christmas = new Date( ); // 獲取當前日期對象

christmas.setMonth(11); // 把月份設置為11月

christmas.setDate(25); // 把日期設置為25號

// 如果聖誕節已經過了,計算當前日期和聖誕節之間的毫秒數

// 把它轉換成天數

//輸出消息

if (today.getTime( ) < christmas.getTime( )) {

difference = christmas.getTime( ) - today.getTime( );

difference = Math.floor(difference / (1000 * 60 * 60 * 24));

document.write('Only ' + difference + ' days until Christmas!<p>');

}

</script>

// 此處是其余和HTML文檔

<script language="JavaScript">

// 下面用Data對象計時

// 用1000除它,把毫秒轉換成秒

now = new Date( );

document.write('<p>It took ' +

(now.getTime( )-today.getTime( ))/1000 +

'seconds to load this page.');

</script>

參閱

Date.parse( ), Date.UTC( )

 

Date.getDate( )

返回一個月中的某一天


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

date.getDate( )

返回值

指定Date對象dace所指的月份中的某一天,使用本地時間。返回值是1~31之間的 一個整數。

         

Date.getDay( )

返回一周中的某一天


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

date.getDay( )

返回值

指定Date對象date所指的一個星期中的某一天,使用本地時間。返回值是0(周日) 到6(周六)之間的一個整數。

       

Date.getFullYear( )

返回年份


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.getFullYear( )

返回值

當dace用本地時間表示時返回的年份。返回值是一個四位數,表示包括世紀值在內的完整年份,而不是兩位數的縮寫形式。

     
       
               

 

Date.getHours( )

返回Date對象的小時字段


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

date.getHours( )

返回值

指定Date對象date的小時字段,以本地時間表示。返回值是0(午夜)到23(晚上 11點)之間的一個整數。

 

 

Date.getMilliseconds( )

返回Date對象的毫秒字段


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.getMilliseconds( )

返回值

指定Date對象date的毫秒字段,用本地時間表示。返回值在0~999之間。

 

 

Date.getMinutes( )

返回Date對象的分鍾字段


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

date.getMinutes( )

返回值

指定的Date對象date的分鍾字段,以本地時間表示。返回值在0~59之間。

Date.getMonth( )

返回Date對象的月份字段


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

date.getMonth( )

返回值

指定的Date對象date的月份字段,以本地時間表示。返回值在0(一月)到11(十二月)之間。

Date.getSeconds( )

返回Date對象的秒字段


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

date.getSeconds( )

返回值

指定的Date對象date的秒字段,以本地時間表示。返回值在0~59之間。

 

 

 

Date.getTime( )

返回Date對象的毫秒表示

 


 

   

 

可用性

 

JavaScript 1.0; JScript 1.0; ECMAScript v1

 

語法

 

date.getTime( )

 

返回值

 

指定的Date對象date的毫秒表示,也就是date指定的日期和時間距1970年1月1 日午夜(GMT時間)之間的毫秒數

 

描述

 

方法getTime()可以將日期和時間轉換戍一個整數。這在比較兩個Date對象或者要判斷兩個日期之間的時差時非常有用。注意,日期的毫秒表示獨立於時區,所以除了這個方法外,沒有getUTCTime()方法。不要混淆getTime()方法和getDay()及 getDate()方法,getDay()和getDate()返回的分別是一周的第幾天和一個月的第幾天。

 

可以使用Date.parse()或Date.UTC()將日期和時間轉換成它們的毫秒表示,在此之前無須先創建一個Date對象。

 

參閱

 

Date, Date.parse( ), Date.setTime( ), Date.UTC( )

 

Date.getTimezoneOffset( )

判斷與GMT的時間差


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

date.getTimezoneOffset( )

返回值

本地時間與GMT時間之間的時差,以分鍾為單位。

描述

getTimezoneOffset()返回的是本地時間和GMT時間或UTC時間之間相差的分鍾數。實際上,該函數告訴了你運行JavaScript代碼的時區,以及指定的時間是否是夏令時。

返回值以分鍾計,而不是以小時計,原因是某些國家所占有的時區甚至不到一個小時的間隔。

 

 

 

 

Date.getUTCDate( )

返回該天是一個月的哪一天(世界時)


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.getUTCDate( )

返回值

當date對象用世界時表示時,返回值是該月中的哪一天(是1~31的一個值)。

Date.getUTCDay( )

返回該天是星期幾(世界時)


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.getUTCDay( )

返回值

當date對象用世界時表示時,返回值是該星期中的哪一天。該值在0(星期天)到6(星期六)之間。

Date.getUTCFullYear( )

返回年份(世界時)


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.getUTCFullYear( )

返回值

當date對象是用世界時表示時所代表的年份。該值是四位數,而不是兩位數的縮寫。

Date.getUTCHours( )

返回Date對象的小時字段(世界時)


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.getUTCHours( )

返回值

當date對象用世界時表示時的小時字段,該值在0(午夜)到23(晚上11點)之間。

Date.getUTCMilliseconds( )

返回Date對象的毫秒字段(世界時)


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.getUTCMilliseconds( )

返回值

當date對象是用世界時表示時的毫秒字段。

Date.getUTCMinutes( )

返回Date對象的分鍾字段(世界時)


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.getUTCMinutes( )

返回值

dsce對象用世界時表示時的分鍾字段,該值是0~59之間的整數。

Date.getUTCMonth( )

返回Date對象的月份(世界時)


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.getUTCMonth( )

返回值

當date對象用世界時表示時的月份,該值是0(一月)到11(十二月)之間的一個整數。注意,Date對象以1代表某個月的第一天,而不是像月份字段那樣使用0代表一年的第一個月。

Date.getUTCSeconds( )

返回Date對象的秒字段(世界時)


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.getUTCSeconds( )

返回值

當dace對象用世界時表示時的秒字段,該值是0~59之間的—個整數。

Date.getYear( )

返回Date對象的年份字段(世界時)


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1; ECMAScript v3反對使用

語法

date.getYear( )

返回值

指定Date對象date的年份字段減去1900。

描述

方法getyear()返回的是指定的Date對象的年份字段減去1900后的值。從 ECMAScriptv3起,JavaScript的實現就不再要求使用該函數,而使用getFullYear() 函數代替它。

Bug

在JavaScriptl.0到1.2的Netscape實現中,只將1900和1999之間的年份減去1900。

Date.parse( )

解析日期/時間字符串


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Date.parse(date)

參數

date

含有要解析的日期和時間的字符串。

返回值

指定的日期和時間距1970年1月1日午夜(GMT時間)之間的毫秒數。

描述

Date.parse()是Date對象的靜態方法。一般通過Date構造函數,采用Date.parse()的形式調用它,而不是通過date對象,采用date.parse()調用該方法。 Date.parse()只有一個字符串型的參數。它將解析這個字符串中的日期,然后返回它的毫秒形式,這種形式可以直接使用,也可以用於創建一個新的Date對象,還可以用Date.setTime()方法來設置一個已經存在的日期。

ECMAScript標准沒有規定Date.parse()方法解析的字符串的格式,只是說該方法能解析Date.toString()方法和Date.toUTCString()方法返回的字符串。但是,這些函數根據實現來格式化日期,所以以某種方式編寫所有JavaScript實現都能理解的日期是不可能的。

參閱

Date, Date.setTime( ), Date.toGMTString( ), Date.UTC( )

 

 

Date.setDate( )

設置一個月的某一天


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

date.setDate(day_of_month)

參數

day_of_month

1~31之間的整數,作為date中月中某一天字段的新值(以本地時間計)。

返回值

調整過的日期的毫秒表示。在ECMAScript標准化之前,該方法什么都不返回。

Date.setFullYear( )

設置年份,也可以設置月份和天


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.setFullYear(year)

date.setFullYear(year, month)

date.setFullYear(year, month, day)

參數

year

在date中設置的年份,用本地時間表示。該參數應該是一個包含世紀值的完整年份,如1999,而不僅是年份的縮寫,如99。

month

可選的整數,在0~11之間,用作date的月份字段的新值(以本地時間計)。

day

可選的整數,在1~31之間,用作date的天數字段的新值(以本地時間計)。

返回值

調整過的日期的內部毫秒表示。

Date.setHours( )

設置Date對象的小時字段、分鍾字段、秒字段和毫秒字段


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

date.setHours(hours)

date.setHours(hours, minutes)

date.setHours(hours, minutes,seconds)

date.setHours(hours, minutes, seconds, millis)

參數

hours

0(午夜)到23(晚上11點)之間的整數,用作date的小時宇段的新值(以本地時間計)。

minutes

可選的整數,在0~59之間,用作date的分鍾字段的新值(以本地時間計)。 ECMAScript標准化前,不支持該參數。

seconds

可選的整數,在0~59之間,用作date的秒字段的新值(以本地時間計)。 ECMAScript標准化前,不支持該參數。

millis

可選的整數,在0~999之間,用作date的毫秒字段的新值(以本地時間計)。 ECMAScript標准化前,不支持該參數。

返回值

調整過的日期的毫秒表示。在ECMAScript標准化前,該方法不返回值。

Date.setMilliseconds( )

設置Date對象的毫秒字段


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.setMilliseconds(millis)

參數

millis

用於設置date的毫秒字段,用本地時間表示。該參數是0~999之間的整數。

返回值

調整過的日期的內部毫秒表示。

Date.setMinutes( )

設置Date對象的分鍾字段和秒字段


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

date.setMinutes(minutes)

date.setMinutes(minutes, seconds)

date.setMinutes(minutes, seconds, millis)

參數

minutes

0~59之間的整數,用於設置Date對象date的分鍾字段(以本地時間計)

seconds

可選的整數,在0~59之間,用做date的秒字段的新值(以本地時間計)。 ECMAScript標准化前,不支持該參數。

millis

可選的整數,在0到999之間,用作date的毫秒字段的新值(以本地時間計)。 ECMAScript標准化前,不支持該參數。

返回值

0~59之間的整數,用於設置Date對象date的分鍾字段(以本地時間計)。

Date.setMonth( )

設置Date對象的月份字段和天字段


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

date.setMonth(month)

date.setMonth(month, day)

參數

month

0(一月)到11(十二月)之間的整數,用於設置Date對象date的月份字段。 注意,月份從0開始編號,而月中的某一天則從1開始編號。

day

可選的整數,在1~31之間,用做date的天數字段的新值(以本地時間計)。 ECMAScript標准化前,不支持該參數。

返回值

調整過的日期的毫秒表示。在ECMAScript標准化前,該方法不返回值。

Date.setSeconds( )

設置Date對象的秒字段和毫秒字段


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

date.setSeconds(seconds)

date.setSeconds(seconds, millis)

參數

seconds

0~59之間的一個整數,用於設置Date對象date的秒字段。

millis

可選的整數,在0~999之間,用做date的毫秒字段的新值(以本地時間計)。 ECMAScript標准化前,不支持該參數。

返回值

調整過的日期的毫秒表示。在ECMAScript標准化前,該方法不返回值。

 

 

Date.setTime( )

以毫秒設置Date對象


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

date.setTime(milliseconds)

參數

milliseconds

要設置的日期和時間距GMT時間1970年1月1日午夜之間的毫秒數。這種類型的毫秒值可以傳遞給Date()構造函數,可以通過調用Date.UTC()和 Date.parse()方法獲得該值。以毫秒形式表示日期可以使它獨立於時區。

返回值

參數milliseconds。在ECMAScript標准化前,該方法不返回值。

Date.setUTCDate( )

設置一個月中的某一天(世界時)


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.setUTCDate(day_of_month)

參數

day_of_month

要給date設置的一個月中的某一天,用世界時表示。該參數是1~31之間的整數。

返回值

調整過的日期的內部毫秒表示。

Date.setUTCFullYear( )

設置年份、月份和天(世界時)


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.setUTCFullYear(year)

date.setUTCFullYear(year, month)

date.setUTCFullYear(year, month, day)

參數

year

要給date設置的年份值,用世界時表示。該參數應該是含有世紀值的完整年份, 如1999,而不只是縮寫的年份值,如99。

month

可選的整數,在0~11之間,用作date的月份字段的新值(以世界時計)。

day

可選的整數,在1~31之間,用作date的天字段的新值(以世界時計)。

返回值

調整過的日期的內部毫秒表示。

Date.setUTCHours( )

設置Date對象的小時字段、分鍾字段、秒字段和毫秒字段(世界時)


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.setUTCHours(hours)

date.setUTCHours(hours, minutes)

date.setUTCHours(hours, minutes, seconds)

date.setUTCHours(hours,minutes, seconds, millis)

參數

hours

要設置的date的小時字段的值,用世界時表示。該參數應該是0(午夜)到23 (晚上11點)之間的一個整數。

minutes

可選的整數,在0~59之間,用作date的分鍾字段的新值(以世界時計)。

seconds

可選的整數,在0~59之間,用作date的秒字段的新值(以世界時計)。

millis

可選的整數,在0~999之間,用作date的毫秒字段的新值(以世界時計)。

返回值

調整過的日期的內部毫秒表示。

Date.setUTCMilliseconds( )

設置Date對象的毫秒字段(世界時)


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.setUTCMilliseconds(millis)

參數

millis

要設置的date的毫秒字段的值,用世界時表示。該參數是0~999之間的整數。

返回值

調整過的日期的內部毫秒表示。

Date.setUTCMinutes( )

設置Date對象的分鍾字段和秒字段(世界時)


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.setUTCMinutes(minutes)

date.setUTCMinutes(minutes, seconds)

date.setUTCMinutes(minutes, seconds, millis)

參數

minutes

要設置的date的分鍾字段的值,用世界時表示。該參數應該是0~59之間的一個整數。

seconds

可選的整數,在0~59之間,用作date的秒字段的新值(以世界時計)。

millis

可選的整數,在0~999之間,用作date的毫秒字段的新值(以世界時計)。

返回值

調整過的日期的內部毫秒表示。

Date.setUTCMonth( )

設置Date對象的月份字段和天數字段(世界時)


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.setUTCMonth(month)

date.setUTCMonth(month, day)

參數

month

要設置的date的月份字段的值,用世界時表示。該參數是0(一月)到11(十 二月)之間的整數。注意,月份從0開始編碼,而月中的某一天則從1開始編碼。

day

可選的整數,在1~31之間,用作date的天字段的新值(以世界時計)。

返回值

調整過的日期的內部毫秒表示。

Date.setUTCSeconds( )

設置Date對象的秒字段和毫秒字段(世界時)


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v1

語法

date.setUTCSeconds(seconds)

date.setUTCSeconds(seconds, millis)

參數

seconds

要設置的date的秒字段的值,用世界時表示。該參數應該是0~59之間的一個整數。

millis

可選的整數,在0~999之間,用作date的毫秒字段的新值(以世界時計)。

返回值

調整過的日期的內部毫秒表示。

Date.setYear( )

設置Date對象的年份字段


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1; ECMAScript v3返回使用

語法

date.setYear(year)

參數

year

要設置的Date對象date的年份字段的值,是一個整數。如果這個值在0~99之 間,包括0和99,將給它加上1900,作為1900~1999間的值處理。

返回值

調整過的日期的毫秒表示。在ECMAScript標准化前,該方法不返回值。

描述

方法setYear()可以設置指定的Date對象的年份字段,對於1900~1999之間的年份,帶有特殊的行為。

從ECMAScriptv3起,JavaScript實現不再要求使用該函數,而使用setFullYear() 函數代替它。

Date.UTC( )

將Date規范轉換成毫秒數


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Date.UTC(year, month, day, hours, minutes, seconds, ms)

參數

year

四位數表示的年份值。如果該參數在0~99之間(包括0和99),它將加上1900, 作為1900~1999之間的年份處理。

month

月份值,是0(一月)到11(十二月)之間的整數。

day

—個月中的某一天,是1~31之間的整數。注意,該參數的最小值是1,而其他 參數的最小值則是0。該參數是可選的。

hours

小時值,是0(午夜)到23(晚上11點)之間的整數。該參數是可選的。

minutes

分鍾值,是0~59之間的整數。該參數是可選的。

seconds

是0~59之間的整數。該參數是可選的。

ms

毫秒數。該參數是可選的。在ECMAScript標准化前,忽略該參數。

返回值

指定的世界時的毫秒表示。簡而言之,該方法返回指定的時間距GMT時間1970年1 月1日午夜的毫秒數。

描述

Date.UTC()是一種靜態方法,它通過構造函數Date()調用,而不是通過某個Date 對象調用

Date.UTC()方法的參數指定日期和時間,它們都是UTC時間,處於GMT時區。指 定的UTC時間將轉換成毫秒的形式,這樣構造函數Date()和方法Date.setTime() 就可以使用它了。

Date.UTC()能接受的日期和時間格式,構造函數Date()也可以接受。區別在於構 造函數Date()假定這些參數是本地時間,而Date.UTC()卻假定它們是世界時(GMT 時間)。要創建使用UTC時間規約的Date對象,可以使用如下的代碼:

d = new Date(Date.UTC(1996, 4, 8, 16, 30));

參閱

Date, Date.parse( ), Date.setTime( )

Date.valueOf( )

將Date轉換成毫秒表示


   

可用性

JavaScript 1.1; ECMAScript v1

繼承/覆蓋

Overrides Object.valueOf( )

語法

date.valueOf( )

返回值

date的毫秒表示。返回值和方法Date.getTime{)返回的值相等。

Error(錯誤對象)

Error

普通異常

 

Error.message

可以讀取的錯誤消息

 

Error.name

錯誤的類型

 

Error.toString( )

把Error對象轉換成字符串

 

EvalError

在不正確使用eval()時拋出

 

SyntaxError

拋出該錯誤用來通知語法錯誤

 

RangeError

在數字超出合法范圍時拋出

 

ReferenceError

在讀取不存在的變量時拋出

 

TypeError

當一個值的類型錯誤時,拋出該異常

 

URIError

由URl的編碼和解碼方法拋出

 

Error

普通異常


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

繼承/覆蓋

繼承於 Object

構造函數

new Error( )

new Error(message)

參數

message

提供異常的詳細信息的錯誤消息,可選。

返回值

新構造的Error對象。如果指定了參數message,該Error對象將它作為message屬性的值;否則,它將用實現定義的默認字符串作為該屬性的值。如果把Error構造函數當作函數調用時不使用new運算符,它的行為與使用new運算符調用時一樣。

屬性

message

提供異常詳細信息的錯誤消息。該屬性存放傳遞給構造函數的字符串,或實現定義的默認字符串。

name

聲明異常類型的字符串。對於Error類的實例和所有子類來說,該屬性聲明了用於創建實例的構造函數名。

方法

toString( )

返回一個表示Error對象的字符串

描述

Error類的實例表示錯誤或異常,通常與throw語句和try/catch語句一起使用。屬性name聲明了異常的類型,message屬性可提供人們能夠讀取的異常的詳細信息。

JavaScript解釋器從不直接拋出Error對象,而是拋出Error子類(如SyntaxError或RangeError)的實例。在代碼中,你會發現拋出Error對象指示異常非常方便,或者也可以用原始字符串或數字的形式拋出錯誤消息或錯誤代碼。

注意,ECMAScript標准為Error類定義了toString()方法(Error的所有子類都繼 承了該方法),但並不要求該方法返回含有message屬性的字符串。因此,不能期望 toString()方法可以把Error對象轉換成人們可以讀懂的字符串。要把錯誤消息顯 示給用戶,應該明確地使用Error對象的name屬性和message屬性。

示例

可以用下列代碼指示一個異常:

function factorial(x) {

if (x < 0) throw new Error("factorial: x must be >= 0");

if (x <= 1) return 1; else return x * factorial(x-1);

}

如果捕捉到了一個異常,可以用下列代碼把它顯示給用戶(這段代碼使用了客戶端 Window.alert()方法):

try { &*(&/* an error is thrown here */ }

catch(e) {

if (e instanceof Error) { // 判斷是否為Error或子類的—個實例

alert(e.name + ": " + e.message);

}

}

參閱

EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError

 

 

Error.message

人們可以讀取的錯誤消息


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

語法

error.message

描述

Error對象(或Error子類的實例)的message屬性用於存放包含發生的錯誤或異常的詳細情況的字符串,該字符串是人們可以讀取的。如果傳遞給Error()構造函數一個消息參數,該消息將成為message屬性的值。如果沒有消息參數傳遞給Error()參 數,Error對象將繼承實現為該屬性定義的默認值(可能是空串)。

             

 

Error.name

錯誤的類型


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

語法

error.name

描述

Error對象(或Error子類的實例)的name屬性聲明了發生的錯誤或異常的類型。所有Error對象都從它們的構造函數中繼承這一屬性。該屬性的值與構造函數名相同。因 此,SyntaxError對象的name屬性值為“SyntaxError”,EvalError對象的name屬性為“EvalError”。

           

 

SyntaxError

拋出該錯誤用來通知語法錯誤


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

繼承/覆蓋

繼承於 Error

構造函數

new SyntaxError( )

new SyntaxError(message)

參數

message

提供異常細節的錯誤消息(可選)。如果設置了該參數,它將作為SyntaxError對象的message屬性的值。

返回值

新構造的SyntaxError對象。如果指定了參數message,該Error對象將它作為message 屬性的值,否則,它將用實現定義的默認字符串作為該屬性的值。如果不用new運算符,把SyntaxError()構造函數當作函數調用,它的行為與使用new運算符調用時一樣。

屬性

message

提供異常細節的錯誤消息。該屬性存放傳遞給構造函數的字符串,或存放實現定義的默認字符串。詳見“Error.message”。

name

聲明異常類型的字符串。所有SyntaxEfror對象的name屬性都繼承值“SyntaxError”。

描述

SyntaxError類的一個實例會被拋出以通知JavaScript代碼中的語法錯誤。eval()方法、Function()構造函數和RegExp()構造函數都可能拋出這種類型的異常。關於拋出和捕捉異常的細節,請參閱“Error”。

參閱

Error, Error.message, Error.name

         

 

RangeError

在數字超出合法范圍時拋出</td>


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3 繼承於 Error

構造函數

new RangeError( )

new RangeError(message)

參數

message

可選的錯誤消息,提供異常的詳細情況。如果指定了該參數,它將作為 RangeError對象的message屬性的值。

返回值

新構造的RangeError對象。如果指定了參數message,該Error對象把它作為message屬性的值,否則,它將用實現定義的默認字符串作為該屬性的值。如果不用new運算符,把RangeError()構造函數當作函數調用,那么它的行為與使用new運算符調用時一樣。

屬性

message

提供異常細節的錯誤消息。該屬性存放傳遞給構造函數的字符串,或實現定義的默認字符串。詳見“Error.message”。

name

聲明異常類型的字符串。所有RangeError對象的name屬性都繼承值“RangeError”。

描述

當數字超出合法范圍時,RangeError類的一個實例就會被拋出。例如,把數組的length 屬性設置成一個負數,就會使RangeError對象被拋出。關於拋出和捕捉異常的細節, 請參閱“Error”。

參閱

Error, Error.message, Error.name

       

 

ReferenceError

在讀取不存在的變量時拋出


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

繼承/覆蓋

繼承於 Error

構造函數

new ReferenceError( )

new ReferenceError(message)

參數

message

可選的錯誤消息,提供異常的詳細情況。如果指定了該參數,它將作為 ReferenceError對象的message屬性的值。

返回值

新構造的ReferenceError對象。如果指定了參數message,該Error對象把它作為 message屬性的值,否則,它將用實現定義的默認字符串作為該屬性的值。如果不用 new運算符,把ReferenceError()構造函數當作函數調用,它的行為與使用new 運算符調用時一樣。

屬性

message

提供異常細節的錯誤消息。該屬性存放傳遞給構造函數的字符串,或實現定義的 默認字符串。詳見“Error.message”。

name

聲明異常類型的字符串。所有ReferenceError對象的name屬性都繼承值“ReferenceError”。

描述

在讀取一個不存在的變量的值時,ReferenceError類的一個實例就會拋出。關於拋出和捕捉異常的細節,請參閱“Error"。

參閱

Error, Error.message, Error.name

   

 

TypeError

當一個值的類型錯誤時,拋出該異常

   

 

                     
                     

   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript

繼承/覆蓋

繼承於 Error

構造函數

new TypeError( )

new TypeError(message)

參數

message

提供異常細節的錯誤消息(可選)。如果設置了該參數,它將作為TypeError對象的message屬性的值。

返回值

新構造的TypeError對象。如果指定了參數message,該Error對象將它作為message屬性的值,否則,它將用實現定義的默認字符串作為該屬性的值。如果不用new運算符,則把TypeError()構造函數當作函數調用,它的行為與使用new運算符調用時一樣。

屬性

message

提供異常細節的錯誤消息。該屬性存放傳遞給構造函數的字符串,或存放實現定義的默認字符串。詳見“Error.message”。

name

聲明異常類型的字符串。所有TypeError對象的name屬性都繼承值“TypeError”。

描述

當一個值的類型與要求不符時,TypeError類的一個實例就會被拋出。在訪問值為 null或undefined的屬性時,這種情況經常發生。如果由一個對象(其他類的實例) 調用另一個類定義的方法,或者對於不是構造函數的值使用new運算符時,也會發生這種情況。當調用內部函數或方法時,如果傳遞的參數多於期望的個數,JavaScript 的實現也允許拋出TypeError異常。關於拋出和捕捉異常的細節,請參閱“Error”。

參閱

Error, Error.message, Error.name

 

 

 

EvalError

在不正確使用eval()時拋出


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

繼承/覆蓋

繼承於 Error

構造函數

new EvalError( )

new EvalError(message)

參數

message

提供異常的詳細信息的錯誤消息,可選。如果設置了該參數,它將用作EvalError對象的message屬性的值。

返回值

新構造的EvalError對象。如果指定了參數message,Error對象將用它作為message 屬性的值,否則,它將用實現定義的默認字符串作為該屬性的值。如果把 EvalError()構造函數當作函數調用且不帶有new運算符,它的行為與使用new運算符調用時一樣。

屬性

message

提供異常的詳細信息的錯誤消息。該屬性存放傳遞給構造函數的字符串,或存放實現定義的默認字符串。詳見“Error.message”。

name

聲明異常類型的字符串。所有EvalError對象的name屬性都繼承值“EvalError”。

描述

當在其他名稱下調用全局函數eval()時,EvalError類的一個實例就會被拋出。關於調用eval()函數的限制,請參閱“eval()”。關於拋出和捕捉異常的細節,請參閱 “Error”。

參閱

Error, Error.message, Error.name

URIError

由URl的編碼和解碼方法拋出


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3 繼承於 Error

構造函數

new URIError( )

new URIError(message)

參數

message

提供異常細節的錯誤消息(可選)。如果設置了該參數,它將作為URIError對象的message屬性的值。

返回值

新構造的URIError對象。如果指定了參數message,該Error對象將它作為message 屬性的值,否則,它將用實現定義的默認字符串作為該屬性的值。如果不用new運算符,而把URIError()構造函數當作函數調用,它的行為與使用new運算符調用時一樣。

屬性

message

提供異常細節的錯誤消息。該屬性存放傳遞給構造函數的字符串,或存放實現定義的默認字符串。詳見“Error.message”。

name

聲明異常類型的字符串。所有URIError對象的name屬性都繼承值“URIError”。

描述

如果指定的字符串含有不合法的十六進制轉義序列,則decodeURI()或decodeURIComponent()方法就會拋出URIError類的實例。如果指定的字符串含有不合法的 Unicode替代對,encodeURI()或encodeURIComponent()方法也會拋出該異常。關於拋出和捕捉異常的細節,請參閱“Error”。

參閱

Error, Error.message, Error.name

 

Function(函數對象)

 

Function

JavaScript的函數

 

Function.apply( )

將函數作為一個對象的方法調用

 

Function.arguments[]

傳遞給函數的參數

 

Function.call( )

將函數作為對象的方法調用

 

Function.caller

調用當前函數的函數

 

Function.length

已聲明的參數的個數

 

Function.prototype

對象類的原型

 

Function.toString( )

把函數轉換成字符串

 

Function

JavaScript的函數


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

繼承/覆蓋

繼承於 Object

語法

function functionname(argument_name_list) // 函數定義語句

{

body

}

function (argument_name_list) { body } // 未命名的函數直接量,JavaScript 1.2引入

functionname(argument_value_list) // 函數調用

構造函數

new Function(argument_names..., body) // avaScript 1.1和其后的版本支持它

參數

argument_names...

任意多個字符串參數,每個字符串命名一個或多個要創建的Function對象的參數。

body

一個字符串,指定函數的主體,可以含有任意多條JavaScript語句,這些語句之間用分號隔開,可以給該構造函數引用前面的參數設置的任何參數名。

返回值

新創建的Function對象。調用該函數,將執行body指定的JavaScript代碼。

拋出

SyntaxError

說明在參數body或某個argument_names參數中存在JavaScript語法錯誤。

屬性

arguments[]

一個參數數組,元素是傳遞給函數的參數。反對使用該屬性。

caller

對調用當前函數的Function對象的引用,如果當前函數由頂層代碼調用,這個屬性的值為null。反對使用該屬性。

length

在聲明函數時指定的命名參數的個數。

prototype

一個對象,用於構造函數,這個對象定義的屬性和方法由構造函數創建的所有對象共享。

方法

apply( )

將函數作為指定對象的方法來調用,傳遞給它的是指定的參數數組。

call( )

將函數作為指定對象的方法來調用,傳遞給它的是指定的參數。

toString( )

返回函數的字符串表示。

描述

函數是JavaScript的一種基本數據類型。注意,雖然可以用這里介紹的Function()構造函數創建函數對象, 但這樣做效率不高,在大多數情況下,建議使用函數定義語句或函數直接量來定義函數。

在JavaScriptl.1及以后版本中,函數主體會被自動地給予一個局部變量arguments,它引用一個Arguments對象。該對象是一個數組,元素是傳遞給函數的參數值。不要將這一屬性和上面介紹的反對使用的屬性argumentsl)相混淆。詳見“Arguments”的參考頁。

參閱

Arguments

   

 

Function.apply( )

將函數作為一個對象的方法調用

 

 

             
             

 


 

   

 

可用性

 

JavaScript 1.2; JScript 5.5; ECMAScript v3

 

語法

 

function.apply(thisobj, args)

 

參數

 

thisobj

 

調用function的對象。在函數主體中,thisobj是關鍵字this的值。

 

args

 

一個數組,它的元素是要傳遞給函數function的參數值。

 

返回值

 

調用函數function的返回值。

 

拋出

 

TypeError

 

如果調用該函數的對象不是函數,或參數args不是數組和Arguments對象,則拋出該異常。

 

描述

 

apply()將指定的函數function作為對象thisobj的方法來調用,傳遞給它的是存放在數組args中的參數,返回的是調用function的返回值。在函數體內,關鍵字this引用thisobj對象。

 

參數args必須是數組或Arguments對象。如果想單獨指定傳遞給函數的參數,而不是指定數組元素,請使用Function.call()方法。

 

示例

 

// 在對象上應用默認的Object.toString()方法,

 

/ /該對象用該方法的版本覆蓋了它。注意,沒有參數

 

Object.prototype.toString.apply(o);

 

//使用數組中用來查找最大元素的方法來調用Math.max()

 

// 注意本例中第一個參數沒有什么作用

 

var data = [1,2,3,4,5,6,7,8];

 

Math.max.apply(null, data);

 

參閱

 

Function.call( )

 

Function.arguments[]

傳遞給函數的參數


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1; deprecated by ECMAScript v3

語法

function.arguments[i]

function.arguments.length

描述

Function對象的arguments屬性是一個參數數組,它的元素是傳遞給函數的參數。只在執行函數時,它才被定義。arguments.1ength聲明的是數組中的元素個數。

反對使用該屬性,贊成使用Arguments對象。雖然ECMAScriptVl支持Function.arguments屬性,但ECMAScriptv3刪除了它,遵守該標准的實現不再支持該屬性。 因此,在新的JavaScript代碼中,不再應該使用它。

參閱

Arguments

 

 

 

 

Function.call( )

將函數作為對象的方法調用


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

語法

function.call(thisobj, args...)

參數

thisobj

調用function的對象。在函數主體中,thisobj是關鍵字this的值。

args...

任意多個參數,這些參數將傳遞給函數function。

返回值

調用函數function的返回值。

拋出

TypeError

如果調用該函數的對象不是函數,則拋出該異常。

描述

call()將指定的函數function作為對象thisobj的方法來調用,把參數列表中thisobj后的參數傳遞給它,返回值是調用函數后的返回值。在函數體內,關鍵字this引用thisobj對象。

如果指定數組中傳遞給函數的參數,請使用Function.apply()方法。

示例

// 在對象上調用默認的object.toStrlng()方法,該對象用該方法的版本覆蓋了自己

// 注意沒有參數.

Object.prototype.toString.call(o);

參閱

Function.apply( )

Function.caller

調用當前函數的函數


   

可用性

JavaScript 1.0, JScript 2.0; deprecated by ECMAScript

語法

function.caller

描述

在JavaScript的早期版本中,Function對象的caller屬性是對調用當前函數的函數的引用。如果該函數是從JavaScript程序的頂層調用的,caller的值就為null。該屬性只能在函數內部使用(例如,caller屬性只有在函數執行時才會有定義)。

Function.caller屬性不屬於ECMAScript標准,在遵守該標准的實現中,不需要該屬性。不應該再使用它。

Function.length

已聲明的參數的個數


   

可用性

JavaScript 1.1; JScript 2.0; ECMAScript v1

語法

function.length

描述

函數的length屬性在定義函數時聲明已命名的參數的個數。實際調用函數時,傳遞給它的參數個數既可以比它多,也可以比它少。不要混淆了Function對象和Arguments對象的length屬性,后者聲明的是實際傳遞給函數的參數個數。參閱 “Arguments.1ength”中的示例。

參閱

Arguments.length

Function.prototype

對象類的原型


   

可用性

JavaScript 1.1; JScript 2.0; ECMAScript v1

語法

function.prototype

描述

屬性prototype是在函數作為構造函數時使用的。它引用的是作為整個對象類的原型的對象。由這個構造函數創建的任何對象都會繼承屬性prototype引用的對象的所有屬性。

Bug

JavaScript 1.1要求,在給原型對象賦值之前,要先使用一次該構造函數。

參閱

Function.toString( )

把函數轉換成字符串


   

可用性

JavaScript 1.0; JScript 2.0; ECMAScript v1

語法

function.toString( )

返回值

表示函數的字符串。

拋出

TypeError

如果調用該函數的對象不是Function,則拋出該異常。

描述

Function對象的方法toString()可以以一種與實現相關的方式將函數轉換成字符串。 在Netscape實現中,該方法返回一個含有有效JavaScript代碼的字符串,即包括關鍵字function、參數列表和函數的完整主體的代碼。

Math(數學對象)

Math

算術函數和常量

Math.abs( )

計算絕對值

Math.acos( )

計算反余弦值

Math.asin( )

計算反正弦值

Math.atan( )

計算反正切值

Math.atan2( )

計算從x軸到一個點之間的角度

Math.ceil( )

對一個數上舍入

Math.cos( )

計算余弦值

Math.E

算術常量e

Math.exp( )

計算ex

Math.floor( )

對一個數下舍入

Math.LN10

算術常loge10

Math.LN2

算術常量loge2

Math.log( )

計算一個數的自然對數

Math.LOG10E

算術常量log10e

Math.LOG2E

算術常量log2e

Math.max( )

返回最大的參數

Math.min( )

返回最小的參數

Math.PI

算術常量PI

Math.pow( )

計算xy

Math.random( )

返回一個偽隨機數

Math.round( )

舍入到最接近的整數

Math.sin( )

計算正弦值

Math.sqrt( )

計算平方根

Math.SQRT1_2

算術常量 1/

Math.SQRT2

算術常量

Math.tan( )

計算正切值

Math

算術函數和常量


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.constant

Math.function( )

常量

Math.E

常量e,自然對數的底數。

Math.LN10

10的自然對數。

Math.LN2

2的自然對數。

Math.LOG10E

以10為底的e的對數。

Math.LOG2E

以2為底的e的對數。

Math.PI

常量。

Math.SQRT1_2

2的平方根除以1。

Math.SQRT2

2的平方根。

靜態函數

Math.abs( )

計算絕對值。

Math.acos( )

計算反余弦值。

Math.asin( )

計算反正弦值。

Math.atan( )

計算反正切值。

Math.atan2( )

計算從X軸到一個點的角度。

Math.ceil( )

對一個數上舍入。

Math.cos( )

計算余弦值。

Math.exp( )

計算e的指數。

Math.floor( )

對一個數下舍人。

Math.log( )

計算自然對數。

Math.max( )

返回兩個數中較大的一個。

Math.min( )

返回兩個數中較小的一個。

Math.pow( )

計算xy

Math.random( )

計算一個隨機數。

Math.round( )

舍入為最接近的整數。

Math.sin( )

計算正弦值。

Math.sqrt( )

計算平方根。

Math.tan( )

計算正切值。

描述

Math是一個對象,定義了引用有用的算術函數和常量的屬性。Math對象對這些函數 和常量進行了分組,使用如下的語法就可以調用它們:

y = Math.sin(x);

area = radius * radius * Math.PI;

Math並不像Date和String那樣是對象的類。沒有Math()構造函數,像Math.sin() 這樣的函數只是函數,不是對象的方法。

參閱

Number

 

Math.abs( )

計算絕對值


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.abs(x)

參數

x

任意數。

返回值

x的絕對值。

   
       

 

 

 

Math.acos( )

計算反余弦值

 


 

   

 

可用性

 

JavaScript 1.0; JScript 1.0; ECMAScript v1

 

語法

 

Math.acos(x)

 

參數

 

x

 

-1.0 和1.0.之間的數。

 

返回值

 

指定的值x的反余弦值。返回的是0到 之間的弧度值。

 

Math.asin( )

計算反正弦值

 


 

   

 

可用性

 

JavaScript 1.0; JScript 1.0; ECMAScript v1

 

語法

 

Math.asin(x)

 

參數

 

x

 

-1.0 和1.0.之間的數。

 

返回值

 

指定的值x的反正弦值。返回的是-/2和/2之間的弧度值。

 

Math.atan( )

計算反正切值


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.atan(x)

參數

x

任意數。

返回值

指定的值x的反正切值。返回的是 -/2 和/2 之間的弧度值。

Math.atan2( )

計算從x軸到一個點之間的角度


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.atan2(y, x)

參數

y

指定點的Y坐標。

x

指定點的X坐標。

返回值

- 和 之間的值,是從X軸正向逆時針旋轉到點(x,y)時經過的角度。 (x, y).

描述

函數Math.atan2()計算的是y/x的反正切值。參數y可以看作一個點的Y坐標,x 可以看作該點的X坐標。注意這個函數的參數順序,Y坐標在X坐標之前傳遞。

 

 

 

 

Math.ceil( )

對一個數上舍入


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.ceil(x)

參數

x

任意數或表達式。

返回值

大於等於x,並且與它最接近的整數。

描述

Math.ceil()執行的是向上取整計算,它返回的是大於等於函數參數,並且與之最接近的整數。Math.ceil()執行的操作不同於Math.round(),Math.ceil()總是上舍入,而Math.round()可以上舍入或下舍入到最接近的整數。還要注意, Math.ceil()不會將負數舍人為更小的負數,而是向0舍入。

示例

a = Math.ceil(1.99); // 結果是 2.0

b = Math.ceil(1.01); // 結果是 2.0

c = Math.ceil(1.0); // 結果是 1.0

d = Math.ceil(-1.99); // 結果是 -1.0

Math.cos( )

計算余弦值


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.cos(x)

參數

x

一個角的弧度值。要把角度轉換成弧度,只需把角度值乘以0.017453293 (2/360).

返回值

指定的值x的余弦值。返回的是-1.0 和 1.0.

Math.E

算術常量e


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.E

描述

E代表算術常量e,即自然對數的底數,其值近似於2.71828。

Math.exp( )

計算ex


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.exp(x)

參數

x

數值或表達式,被用作指數。

返回值

ex, e 的x次冪。這里e代表自然對數的底數,其值近似為2.71828。

Math.floor( )

對一個數下舍入


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.floor(x)

參數

x

任意的數值或表達式。

返回值

小於等於x,並且與它最接近的整數。

描述

Math.floor()執行的是向下取整計算,它返回的是小於等於函數參數,並且與之最接近的整數。

Math.floor()將一個浮點值下舍人為最接近的整數。Math.floor()執行的操作不同於Math.round(),它總是進行下舍人,而不是上舍入或下舍人到最接近的整數。還要注意,Math.floor()將負數舍入為更小的負數,而不是向0進行舍入。

示例

a = Math.floor(1.99); // 結果為1.0

b = Math.floor(1.01); // 結果為1.0

c = Math.floor(1.0); // 結果為1.0

d = Math.floor(-1.01); // 結果為 -2.0

Math.LN10

算術常loge10


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.LN10

描述

Math.LN10 is loge2, 即10的自然對數,其值近似為2.3025850929940459011.

Math.LN2

算術常量loge2


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.LN2

描述

Math.LN2 is loge2,即2的自然對數,其值近似為0.69314718055994528623.

Math.log( )

計算一個數的自然對數


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.log(x)

參數

x

任何大於0的數值或表達式。

返回值

x的自然對數。

描述

Math.log( )計算logex的值,即它的參數的自然對數。參數值必須大於0。
可以使用下面的公式,計算一個以10為底的對數值和以2為底的對數值:

log10x = log10e·logex

log2x = log2e·logex

這些公式可以轉化成如下的JavaScript函數:

function log10(x) { return Math.LOG10E * Math.log(x); }

function log2(x) { return Math.LOG2E * Math.log(x); }

Math.LOG10E

算術常量log10e


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.LOG10E

描述

Math.LOG10E 表示常量 log10e,t即以2為底數e的對數。其值近似為 0.43429448190325181667.

Math.LOG2E

算術常量log2e


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.LOG2E

描述

Math.LOG2E 表示常量 log2e, 即以10為底的e的對數,其值近似為1.442695040888963387。

Math.max( )

返回最大的參數

 


 

   

 

可用性

 

JavaScript 1.0; JScript 1.0; ECMAScript v1;在ECMAScript v3中增強

 

語法

 

Math.max(args...)

 

參數

 

args...

 

0個或多個值。在ECMAScriptv3之前,該方法只有兩個參數。

 

返回值

 

參數中最大的值。如果沒有參數,返回-Infinity。如果有一個參數為NaN,或是不 能轉換成數字的非數字值,則返回NaN。

 

Math.min( )

返回最小的參數


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1; 在ECMAScript v3中的獲得增強

語法

Math.min(args...)

參數

args...

0個或多個值。在ECMAScriptv3之前,該函數只有兩個參數。

返回值

參數中最小的值。如果沒有參數,返回Infinity。如果有一個參數為NaN,或是不能轉換成數字的非數字值,則返HNaN。

Math.PI

算術常量


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.PI

描述

Math.PI表示的是常量 或 pi,即圓的周長和它的直徑之比,這個值近似為3.14159265358979。

Math.pow( )

計算 xy


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.pow(x, y)

參數

x

底數。

y

冪數。

返回值

x的y次冪, xy.

描述

Math.pow()計算x的y次冪。x和y可以是任意值。但如果結果是虛數或復數, Math.pow()將返回NaN。在實際應用中,這就意味着如果x是一個負數,那么y就 應該是一個正整數或是一個負整數。還要記住,指數過大會引起浮點溢出,此時該方法將返回Infinity。

Math.random( )

返回一個偽隨機數


   

可用性

JavaScript 1.1; JScript 1.0; ECMAScript v1

語法

Math.random( )

返回值

返回一個0.0 和 1.0之間的一個偽隨機數。

Math.round( )

舍入到最接近的整數

 


 

   

 

可用性

 

JavaScript 1.0; JScript 1.0; ECMAScript v1

 

語法

 

Math.round(x)

 

參數

 

x

 

任意數。

 

返回值

 

與x最接近的數。

 

描述

 

Math.round( )將把它的參數上舍入或下舍入到與它最接近的整數。對於0.5,它將上舍入。例如,2.5將被舍入為3,-2.5將被舍入為-2。

 

Math.sin( )

計算正弦值


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.sin(x)

參數

x

一個以弧度表示的角。將角度乘以0.017453293 (2/360)即可轉換成弧度。

返回值

x的正弦值。

 

 

 

 

Math.sqrt( )

計算平方根

 


 

   

 

可用性

 

JavaScript 1.0; JScript 1.0; ECMAScript v1

 

語法

 

Math.sqrt(x)

 

參數

 

x

 

大於等於0的數。

 

返回值

 

x的平方根。如果x小於0,返回NaN。

 

描述

 

Math.sqrt()計算數字的平方根。注意,用Math.pow()可以計算一個數的任意次根。例如:

 

Math.cuberoot = function(x){ return Math.pow(x,1/3); }

 

Math.cuberoot(8); // 返回 2

 

Math.SQRT1_2

算術常量 1/

 


 

   

 

可用性

 

JavaScript 1.0; JScript 1.0; ECMAScript v1

 

語法

 

Math.SQRT1_2

 

描述

 

Math.SQRT1_2就是常量1/ ,即2的平方根,它的值近似於0.7071067811865476。

 

Math.SQRT2

算術常量


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.SQRT2

描述

Math.SQRT2就是常量 ,即2的平方根,它的值近似於1.414213562373095。

Math.tan( )

計算正切值


   

可用性

JavaScript 1.0; JScript 1.0; ECMAScript v1

語法

Math.tan(x)

參數

x

一個以弧度表示的角。將角度乘以0.017453293 (2/360)即可轉換成弧度。

返回值

指定的角x的正切值。

 

Number(數字對象)

 

Number

對數字的支持

 

Number.MAX_VALUE

最大數值

 

Number.MIN_VALUE

最小數值

 

Number.NaN

特殊的非數字值

 

Number.NEGATIVE_INFINITY

負無窮大

 

Number.POSITIVE_INFINITY

正無窮大

 

Number.toExponential( )

用指數計數法格式化數字

 

Number.toFixed( )

采用定點計數法格式化數字

 

Number.toLocaleString( )

把數字轉換成本地格式的字符串

 

Number.toPrecision( )

格式化數字的有效位

 

Number.toString( )

將—個數字轉換成字符串

 

Number.valueOf( )

返回原始數值

 

 

Number

對數字的支持


   

可用性

JavaScript 1.1; JScript 2.0; ECMAScript v1

繼承/覆蓋

繼承於 Object

構造函數

new Number(value)

Number(value)

參數

value

要創建的Number對象的數值,或是要轉換成數字的值。

返回值

當Number()和運算符new一起作為構造函數使用時,它返回一個新創建的Number對象。如果不用new運算符,把Number()作為一個函數來調用,它將把自己的參數轉換成一個原始的數值,並且返回這個值(如果轉換失敗,返回NaN)。

常量

Number.MAX_VALUE

可表示的最大的數。

Number.MIN_VALUE

可表示的最小的數。

Number.NaN

非數字值。

Number.NEGATIVE_INFINITY

負無窮大;溢出時返回該值。

Number.POSITIVE_INFINITY

正無窮大;溢出時返回該值。

方法

toString( )

把數字轉換成字符串,使用指定的基數。

toLocaleString( )

把數字轉換成字符串,使用本地數字格式規約。

toFixed( )

把數字轉換成字符串,結果的小數點后有指定位數的數字。

toExponential( )

把數字轉換成字符串,結果采用指數計數法,小數點后有指定位數的數字。

toPrecision( )

把數字轉換成字符串,結果中包含指定位數的行效數字。采用指數計數法或定點計數法,由數字的大小和指定的有效數字位數決定采用哪種方法。

描述

在JavaScript中,數字是—種基本的數據類型。在JavaScriptl.1中,JavaScript 還支持Number對象,該對象是原始數值的包裝對象。JavaScript在必要時會自動地進行原始數據和對象之間的轉換。在JavaScript 1.1中,可以用構造函數Number() 明確地創建一個Number對象,盡管這樣做並沒有什么必要。

構造函數Number()還可以不與運算符new—起使用,而直接作為轉換函數來使用。 以這種方式調用Number()時,它會把自己的參數轉換成一個數字,然后返回轉換后的原始數值(或NaN)。

構造函數Number()通常還用作5個有用的數字常量的占位符,這5個有用的數字常量分別是可表示的最大的數、可表示的最小的數、正無窮大、負無窮大和特殊的非數 字值。注意,這些值都是構造函數Number()自身的屬性,而不是單獨的Number對象的屬性。例如,可以采用如下的形式使用屬性MAX_VALUE:

var biggest = Number.MAX_VALUE

但是卻不能使用:

var n = new Number(2);

var biggest = n.MAX_VALUE

作為比較,看一下toStrlng()和Number對象的其他方法,它們是每個Number對象的方法,而不是Number()構造函數的方法。前面提到過,在必要時,JavaScript 會自動地把原始數值轉換成Number對象。這就是說,調用Number方法的既可以是Number對象,也可以是原始數字值。

var value = 1234;

var binary_value = n.toString(2);

參閱

Infinity, Math, NaN

 

 

Number.MAX_VALUE

最大數值


   

可用性

JavaScript 1.1; JScript 2.0, ECMAScript v1

語法

Number.MAX_VALUE

描述

Number.MAX_VALUE是JavaScript中可表示的最大的數。它的值近似為1.79E+308。

     

 

 

Number.MIN_VALUE

最小數值


   

可用性

JavaScript 1.1; JScript 2.0, ECMAScript v1

語法

Number.MIN_VALUE

描述

Number.MIN_VALUE是JavaScript中可表示的最小的數(接近0,但不是負數)。它的值近似為5E-324.

   

 

Number.NaN

特殊的非數字值

 

 

                   
                   

 


 

   

 

可用性

 

JavaScript 1.1; JScript 2.0, ECMAScript v1

 

語法

 

Number.NaN

 

描述

 

Number.NaN是一個特殊值,說明某些算術運算(如求負數的平方根)的結果不是數字。方法parseInt()和parseFloat()在不能解析指定的字符串時就返回這個值。 對於一些常規情況下返回有效數字的函數,也可以采用這種方法,用Number.NaN說明它的錯誤情況。

 

JavaScript以NaN的形式輸出Number.NaN。注意,NaN與其他數值進行比較的結果 總是不相等的,包括它自身在內。因此,不能通過與Number.NaN比較來檢測一個值是不是數字,而只能調用函數isNaN()來比較。在ECMAScriptv v1其后的版本中, 還可以用預定義的全局常量NaN代替Number.NaN。

 

參閱

 

isNaN( ), NaN

 

Number.NEGATIVE_INFINITY

負無窮大


   

可用性

JavaScript 1.1; JScript 2.0, ECMAScript v1

語法

Number.NEGATIVE_INFINITY

描述

Number.NaN是一個特殊值,說明某些算術運算(如求負數的平方根)的結果不是數字。方法parseInt()和parseFloat()在不能解析指定的字符串時就返回這個值。 對於一些常規情況下返回有效數字的函數,也可以采用這種方法,用Number.NaN說明它的錯誤情況。

JavaScript以NaN的形式輸出Number.NaN。注意,NaN與其他數值進行比較的結果總是不相等的,包括它自身在內。因此,不能通過與Number.NaN比較來檢測一個值是不是數字,而只能調用函數isNaN()來比較。在ECMAScriptv v1其后的版本中, 還可以用預定義的全局常量NaN代替Number.NaN。

參閱

Infinity, isFinite( )

Number.POSITIVE_INFINITY

正無窮大


   

可用性

JavaScript 1.1; JScript 2.0, ECMAScript v1

語法

Number.POSITIVE_INFINITY

描述

屬性Number.POSITIVE_INFINITY是一個特殊值,它在算術運算或函數生成了一個比JavaScript能表示的最大的數還大的數(也就是比Number.MAX_VALUE還大的數)時返回。注意,當數字向下溢出或比Number.MIN_VALUE還小時,JavaScript將它們轉換成零。

JavaScript顯示POSITIVE_INFINITY時使用的是Infinity。這個值的算術行為和無窮大非常相似。例如,任何數乘無窮大結果仍為無窮大,任何數被無窮大除結果為0。 在ECMAScript vl和其后的版本中,還可以用Infinity代替Number.POSITIVE_INFINITY。

參閱

Infinity, isFinite( )

Number.toExponential( )

用指數計數法格式化數字

 


 

   

 

可用性

 

JavaScript 1.5; JScript 5.5, ECMAScript v3

 

語法

 

number.toExponential(digits)

 

參數

 

digits

 

小數點后的數字位數,值在0~20之間,包括0和20,有些實現可能支持更大的數值范圍。如果省略了該參數,將使用盡可能多的數字。

 

返回值

 

number的字符串表示,采用指數計數法,即小數點之前有一位數字,小數點后有digits位數字。該數字的小數部分將被舍人,必要時用0補足,以便它達到指定的 長度。

 

拋出

 

RangeError

 

digits太小或太大時拋出的異常。0~20之間(包括0和20)的值不會引發RangeError。有些實現允許支持更大范圍或更小范圍內的值。

 

TypeError

 

調用該方法的對象不是Number時拋出的異常。

 

示例

 

var n = 12345.6789;

 

n.toExponential(1); // 返回 1.2e+4

 

n.toExponential(5); // 返回 1.23457e+4

 

n.toExponential(10); // 返回 1.2345678900e+4

 

n.toExponential( ); // 返回 1.23456789e+4

 

參閱

 

Number.toFixed( ), Number.toLocaleString( ), Number.toPrecision( ), Number.toString( )

 

Number.toFixed( )

采用定點計數法格式化數字


   

可用性

JavaScript 1.5; JScript 5.5, ECMAScript v3

語法

number.toFixed(digits)

參數

digits

小數點后的數字位數,是0~20之間的值,包括0和20,有些實現可以支持更 大的數值范圍。如果省略了該參數,將用0代理。

返回值

number的字符串表示,不采用指數計數法,小數點后有固定的digics位數字。如果 必要,該數字會被舍入,也可以用0補足,以便它達到指定的長度。如果number大 於le+21,該方法只調用Number.toString(),返回采用指數計數法表示的字符串。

拋出

RangeError

digits太小或太大時拋出的異常。0~20之間(包括0和20)的值不會引發 RangeError。有些實現支持更大范圍或更小范圍內的值。

TypeError

調用該方法的對象不是Number時拋出的異常。

示例

var n = 12345.6789;

n.toFixed( ); // 返回 12346,注意舍入,沒有小數部分

n.toFixed(1); // 返回 12345.7,注意舍入

n.toFixed(6); // 返回 12345.678900,注意補零

(1.23e+20).toFixed(2); // 返回 123000000000000000000.00

(1.23e-10).toFixed(2) // 返回 0.00

參閱

Number.toExponential( ), Number.toLocaleString( ), Number.toPrecision( ), Number.toString( )

Number.toPrecision( )

格式化數字的有效位

 


 

   

 

可用性

 

JavaScript 1.5; JScript 5.5, ECMAScript v3

 

語法

 

number.toPrecision(precision)

 

參數

 

precision

 

返回的字符串中的有效位數,是1~21之間(包括1和21)的值。有些實際允許有選擇地支持更大或更小的precision。如果省略了該參數,將調用方法toString(),而不是把數字轉換成十進制的值。

 

返回值

 

number的字符串表示,包含precision個有效數字。如果precision足夠大,能夠包括number整數部分的所有數字,那么返回的字符串將采用定點計數法。否則,采用指數計數法,即小數點前有一位數字,小數點后有precision-l位數字。必要時, 該數字會被舍入或用0補足。

 

拋出

 

RangeError

 

digits太小或太大時拋出的異常。1~21之間(包括1和21)的值不會引發 RangeError。有些實現支持更大范圍或更小范圍內的值。

 

TypeError

 

調用該方法的對象不是Number時拋出的異常。

 

示例

 

var n = 12345.6789;

 

n.toPrecision(1); // 返回 1e+4

 

n.toPrecision(3); // 返回 1.23e+4

 

n.toPrecision(5); // 返回 12346:注意舍入

 

n.toPrecision(10); // 返回 12345.67890:注補L零

 

參閱

 

Number.toExponential( ), Number.toFixed( ), Number.toLocaleString( ), Number.toString( )

 

Number.toLocaleString( )

把數字轉換成本地格式的字符串


   

可用性

JavaScript 1.5; JScript 5.5, ECMAScript v3

語法

number.toLocaleString( )

返回值

數字的字符串表示,由實現決定,根據本地規范進行格式化。可能影響到小數點或千分位分隔符采用的標點符號。

拋出

TypeError

調用該方法的對象不是Number時拋出的異常。

參閱

Number.toExponential( ), Number.toFixed( ), Number.toPrecision( ), Number.toString( )

Number.toString( )

將—個數字轉換成字符串


   

可用性

JavaScript 1.1; JScript 2.0, ECMAScript v1

繼承/覆蓋

覆蓋 Object.toString( )

語法

number.toString(radix)

參數

radix

可選的參數,指定表示數字的基數,是2~36之間的整數。如果省略了該參數, 使用基數10。但要注意,如果該參數是10以外的其他值,則ECMAScript標准 允許實現返回任意值。

返回值

數字的字符串表示。

拋出

TypeError

調用該方法的對象不是Number時拋出的異常。

描述

Number對象的方法toString()可以將數字換成字符串。當省略了radix參數或指定它的值為10時,該數字將被轉換成基數為10的字符串。如果radix是其他值,該方法將返回由實現定義的字符串。Netscape實現和JScript 3.0后的Microsoft實現都支持radix參數,並返回以指定基數表示的字符串。

參閱

Number.toExponential( ), Number.toFixed( ), Number.toLocaleString( ), Number.toPrecision( )

Number.valueOf( )

返回原始數值

 


 

   

 

可用性

 

JavaScript 1.1; JScript 2.0, ECMAScript v1

 

繼承/覆蓋

 

覆蓋 Object.valueOf( )

 

語法

 

number.valueOf( )

 

返回值

 

Number對象的原始數值。幾乎沒有必要明確調用該方法。

 

拋出

 

TypeError

 

調用該方法的對象不是Number時拋出的異常。

 

參閱

 

Object.valueOf( )

 

RegExp(正則表達式對象)

 

RegExp

用於模式匹配的正則表達式

 

RegExp.exec( )

通用的匹配模式

 

RegExp.global

正則表達式是否全局匹配

 

RegExp.ignoreCase

正則表達式是否區分大小寫

 

RegExp.lastIndex

下次匹配的起始位置

 

RegExp.source

正則表達式的文本

 

RegExp.test( )

檢測一個字符串是否匹配某個模式

 

RegExp.toString( )

把正則表達式轉換成字符串

 

 

RegExp

用於模式匹配的正則表達式


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v3

直接量語法

/pattern/attributes

構造函數

new RegExp(pattern, attributes)

參數

pattern

一個字符串,指定了正則表達式的模式或其他正則表達式。

attributes

一個可選的字符串,包含屬性“g”、“i”和“m”,分別用於指定全局匹配、區分大小寫的匹配和多行匹配。ECMAScript標准化之前,不支持m屬性。如果 pattern是正則表達式,而不是字符串,則必須省略該參數。

返回值

一個新的RegExp對象,具有指定的模式和標志。如果參數pattern是正則表達式而不是字符串,那么RegExp()構造函數將用與指定的RegExp相同的模式和標志創建 一個新的RegExp對象。如果不用new運算符,將RegExp()作為函數調用,那么它 的行為與用new運算符調用時一樣,只是當pactern是正則表達式時,它只返回 pattern,而不再創建一個新的RegExp對象。

拋出

SyntaxError

如果pattern不是合法的正則表達式,或attributes含有“g”、“i”、“m”之 外的字符,拋出該異常。

TypeError

如果pattern是RegExp對象,但沒有省略attributes參數,拋出該異常。

實例屬性

global

RegExp對象是否具有性質g。

ignoreCase

RegExp對象是否具有性質i。

lastIndex

上次匹配后的字符位置,用於在一個字符串中進行多次匹配。

multiline

RegExp對象是否具有m性質。

source

正則表達式的源文本。

方法

exec( )

執行強大的、通用的模式匹配。

test( )

檢測一個字符串是否含有某個模式。

描述

RegExp對象表示一個正則表達式,它是對字符串執行模式匹配的強大工具。

參閱

 

RegExp.exec( )

通用的匹配模式

 

 

             
             

 


 

   

 

可用性

 

JavaScript 1.2; JScript 3.0; ECMAScript v3

 

語法

 

regexp.exec(string)

 

參數

 

string

 

要檢索的字符串。

 

返回值

 

—個數組,存放的是匹配的結果。如果沒有找到匹配,值為null。返回的數組的格式在下面介紹。

 

拋出

 

TypeError

 

調用該方法的對象不是RegExp時,拋出該異常。

 

描述

 

在所有的RegExp模式匹配方法和String模式匹配方法中,exec()的功能最強大。它是一個通用的方法,使用起來比RegExp.test()、String.search()、String.replace()和String.match()都復雜。

 

exec()將檢索字符串string,從中得到與正則表達式regexp相匹配的文本。如果exec()找到了匹配的文本,它就會返回一個結果數組。否則,返回null。這個返回數組的第0個元素就是與表達式相匹配的文本。第1個元素是與regexp的第一個子表達式相匹配的文本(如果存在)。第2個元素是與regexp的第二個子表達式相匹配的文本,以此類推。通常,數組的length屬性聲明的是數組中的元素個數。除了數組元素和length屬性之外,exec()還返回兩個屬性。index屬性聲明的是匹配文本的第一個字符的位置。input屬性指的就是string。在調用非全局RegExp對象的exec()方法時,返回的數組與調用方法String.match()返回的方法相同。

 

在調用非全局模式的exec()方法時,它將進行檢索,並返回上述結果。不過,當regexp是一個全局正則表達式時,exec()的行為就稍微復雜一些。它在regexp的屬性lastlndex指定的字符處開始檢索字符串string。當它找到了與表達式相匹配的文本時,在匹配之后,它將把regexp的lastlndex屬性設置為匹配文本的第一個字符的位置。這就是說,可以通過反復地調用exec()方法來遍歷字符串中的所有匹配文本。當exec()再也找不到匹配的文本時,它將返回null,並且把屬性lastlndex重置為0。如果在另一個字符串中完成了一次模式匹配之后要開始檢索新的字符串,就必須手動地把lastlndex屬性重置為0。

 

注意,無論regexp是否是全局模式,exec()都會將完整的細節添加到它返回的數組中。這就是exec()和String.match()的不同之處,后者在全局模式下返回的信息要少得多。事實上,在循環中反復地調用exec()方法是惟一種獲得全局模式的完整模式匹配信息的方法。

 

示例

 

可以在循環中使用exec()來檢索—個字符串中的所有匹配文本。例如:

 

var pattern = /\bJava\w*\b/g;

 

var text = "JavaScript is more fun than Java or JavaBeans!";

 

var result;

 

while((result = pattern.exec(text)) != null) {

 

alert("Matched `" + result[0] +

 

"' at position " + result.index +

 

" next search begins at position " + pattern.lastIndex);

 

}

 

Bug

 

在JScript 3.0中,exec()不能正確地使用和設置屬性lastIndex,因此這時不能將全局模式的exec()用於循環中,就像上面那個例子所示的一樣。

 

參閱

 

RegExp.lastIndex, RegExp.test( ), String.match( ), String.replace( ), String.search( ); Chapter 10

 

RegExp.global

正則表達式是否全局匹配


   

可用性

JavaScript 1.2; JScript 5.5; ECMAScript v3

語法

regexp.global

描述

RegExp對象的屬性global是一個只讀的布爾值。它聲明了給定的正則表達式是否執行全局匹配,如創建它時是否使用了性質g。

RegExp.ignoreCase

正則表達式是否區分大小寫


   

可用性

JavaScript 1.2; JScript 5.5; ECMAScript v3

語法

regexp.ignoreCase

描述

RegExp對象的屬性ignoreCase是一個只讀的布爾值。它聲明了—個給定的正則表達式是否執行區分大小寫的匹配,例如創建它時是否使用了性質i。

RegExp.lastIndex

下次匹配的起始位置


   

可用性

JavaScript 1.2; JScript 5.5; ECMAScript v3

語法

regexp.lastIndex

描述

RegExp對象的屬性lastIndex是一個可讀可寫的值。對於設置了g性質的正則表達式來說,該屬性存放的是—個整數,它聲明了緊接着上次找到的匹配文本的字符的位置。上次匹配的結果是由方法RegExp.exec()或RegExp.test()找到的,它們都以lastIndex屬性所指的位置作為下次檢索的起始點。這樣,就可以通過反復調用這兩個方法來遍歷一個字符串中的所有匹配文本。注意,不具有性質g和不表示全局模式的RegExp對象不能使用lastlndex屬性。

由於這一屬性是可讀可寫的,所以只要目標字符串的下一次搜索開始,就可以對它進行設置。當方法exec()或test()再也找不到可以匹配的文本時,它們會自動地把 lastIndex屬性重置為0。如果在成功的匹配了某個字符串之后就開始檢索另一個字符串,需要明確地把這個屬性設為0。

參閱

RegExp.exec( ), RegExp.test( )

RegExp.source

正則表達式的文本


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v3

語法

regexp.source

描述

RegExp對象的屬性source是一個只讀的字符串。它存放的是RegExp模式的文本。 該文本中不包括正則表達式直接量使用的定界符,也不包括性質g、i、m。

RegExp.test( )

檢測一個字符串是否匹配某個模式


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v3

語法

regexp.test(string)

參數

string

要檢測的字符串。

返回值

如果字符串string中含有與regexp匹配的文本,就返回true,否則返回false。

拋出

TypeError

調用該方法的對象不是RegExp時,拋出該異常。

描述

方法test()將檢測字符串string,看它是否含有與regexp相匹配的文本。如果 string中含有這樣的文本,該方法將返回true,否則,返回false。調用RegExp對象r的test()方法,給它傳遞字符串s,等價於下面的表達式:

(r.exec(s) != null)

示例

var pattern = /java/i;

pattern.test("JavaScript"); // 返回 true

pattern.test("ECMAScript"); // 返回 false

參閱

RegExp.exec( ), RegExp.lastIndex, String.match( ), String.replace( ), String.substring( )

RegExp.toString( )

把正則表達式轉換成字符串


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v3

繼承/覆蓋

覆蓋 Object.toString( )

語法

regexp.toString( )

返回值

regexp的字符串表示。

拋出

TypeError

調用該方法的對象不是RegExp時,拋出該異常。

描述

RegExp.toString()方法將以正則表達式直接量的形式返回正則表達式的字符串表示。

注意,不允許用實現添加轉義序列,這樣可以確保返回的字符串是合法的正則表達式直接量。考慮由表達式new RegExp("/","g")創建的正則表達式。RegExp.toString()的一種實現對該正則表達式返回“///g”,此外它還能添加轉義序列,返回“/\//g”。

 

String(字符串對象)

 

String

對字符串的支持

 

String.charAt( )

返回字符串中的第n個字符

 

String.charCodeAt( )

返回字符串中的第n個字符的代碼

 

String.concat( )

連接字符串

 

String.fromCharCode( )

從字符編碼創建—個字符串

 

String.indexOf( )

檢索字符串

 

String.lastIndexOf( )

從后向前檢索一個字符串

 

String.length

字符串的長度

 

String.localeCompare( )

用本地特定的順序來比較兩個字符串

 

String.match( )

找到一個或多個正則表達式的匹配

 

String.replace( )

替換一個與正則表達式匹配的子串

 

String.search( )

檢索與正則表達式相匹配的子串

 

String.slice( )

抽取一個子串

 

String.split( )

將字符串分割成字符串數組

 

String.substr( )

抽取一個子串

 

String.substring( )

返回字符串的一個子串

 

String.toLocaleLowerCase( )

把字符串轉換小寫

 

String.toLocaleUpperCase( )

將字符串轉換成大寫

 

String.toLowerCase( )

將字符串轉換成小寫

 

String.toString( )

返回字符串

 

String.toUpperCase( )

將字符串轉換成大寫

 

String.valueOf( )

返回字符串

 

String

對字符串的支持

 

         
         

 


 

   

 

可用性

 

JavaScript 1.0; JScript 1.0; ECMAScript v1

 

繼承/覆蓋

 

繼承於 Object

 

構造函數

 

new String(s) // 構造函數

 

String(s) // 構造函數

 

參數

 

s

 

要存儲在String對象中或轉換成原始字符串的值。

 

返回值

 

當String()與new運算符一起作為構造函數使用時,返回一個新創建的String對象,存放的是字符串s或s的字符串表示。當不用new運算符調用String()時,它只把s轉換成原始的字符串,並返回轉換后的值。

 

屬性

 

length

 

字符串中的字符數。

 

方法

 

charAt( )

 

抽取字符串中指定位置處的字符。

 

charCodeAt( )

 

返回字符串中指定位置處的字符編碼。

 

concat( )

 

把一個或多個值連接到字符串上。

 

indexOf( )

 

在字符串中檢索一個字符或一個子串。

 

lastIndexOf( )

 

在字符串中向后檢索一個字符或一個子串。

 

match( )

 

用正則表達式執行模式匹配。

 

replace( )

 

用正則表達式執行查找、替換操作。

 

search( )

 

檢索字符串中與正則表達式匹配的子串。

 

slice( )

 

返回字符串的一個片段或一個子串。

 

split( )

 

把字符串分割成一個字符串數組,在指定的分界字符處或正則表 達式處執行分割。

 

substring( )

 

從字符串中抽取一個子串。

 

substr( )

 

從字符串中抽取一個子串。該方法是substring()的一個變體。

 

toLowerCase( )

 

將字符串中的所有字符都轉換成小寫的,然后返回一個副本。

 

toString( )

 

返回原始的字符串值。

 

toUpperCase( )

 

將字符串中的所有字符都轉換成大寫的,然后返回一個副本。

 

valueOf( )

 

返回原始字符串值。

 

靜態方法

 

String.fromCharCode( )

 

用作為參數而傳遞的字符代碼創建一個新的字符串。

 

HTML 方法

 

從JavaScript 1.0和JScript 1.0起,String類定義了許多方法,返回的字符串是把它放在HTML標記中修改后得到的。雖然ECMAScript沒有標准化這些方法,但它們在客戶端和服務器端動態生成HTML的腳本代碼中非常有用。用這些非標准的方法,就可以為黑體的紅色超鏈接創建常見HTML源代碼,如下所示:

 

var s = "click here!";

 

var html = s.bold( ).link("javascript:alert('hello')").fontcolor("red");

 

因為這些方法沒有被標准化,所以它們沒有單獨的參考頁:

 

anchor( name)

 

在<a name=>環境中返回字符串的一個副本。

 

big( )

 

在<big>環境中返回字符串的一個副本。

 

blink( )

 

在<blink>環境中返回字符串的一個副本。

 

bold( )

 

在<b>環境中返回字符串的一個副本。

 

fixed( )

 

在<tt>環境中返回字符串的一個副本。

 

fontcolor( color)

 

在<font color=>環境中返回字符串的一個副本。

 

fontsize( size)

 

在<font size=>環境中返回字符串的一個副本。

 

italics( )

 

在<i>環境中返回字符串的一個副本。

 

link( url)

 

在<a href=>環境中返回字符串的一個副本。

 

small( )

 

在<small>環境中返回字符串的一個副本。

 

strike( )

 

在<strike>環境中返回字符串的一個副本。

 

sub( )

 

在<sub>環境中返回字符串的一個副本。

 

sup( )

 

在<sup>環境中返回字符串的一個副本。

 

描述

 

字符串是JavaScript的一種基本數據類型。String類提供了操作原始字符串值的方法。 String對象的length屬性聲明了該字符串中的字符數。類String定義了大量操作字符串的方法, 例如從字符串中提取字符或子串,或者檢索字符或子串。注意,JavaScript的字符串是不可變(immutable)的,String類定義的方法都不能改變字符串的內容。像String.toUpperCase()這樣的方法,返回的是全新的字符串,而不是修改原始字符串。

 

在JavaScript 1.2及其后版本的Netscape實現中,字符串的行為就像只讀的字符數組。 例如,從字符串s中提取第三個字符,可以用s[2]代替更加標准的s.charAt(2)。 此外,對字符串應用for/in循環時,它將枚舉字符串中每個字符的數組下標(但要注意,ECMAScript標准規定,不能枚舉length屬性)。因為Netscape實現中的字符 串的數組行為不標准,所以應該避免使用它。

 

參閱

 

String.charAt( )

返回字符串中的第n個字符


   

可用性

JavaScript 1.0; JScript 1.0, ECMAScript v1

語法

string.charAt(n)

參數

n

應該返回的字符在string中的下標。

返回值

字符串string的第n個字符。

描述

方法String.charAt()返回字符串string中的第n個字符。字符串中第一個字符的下標值是0。如果參數n不在0和string.length-1之間,該方法將返回一個空字符串。注意,JavaScript並沒有一種有異於字符串類型的字符數據類型,所以返回的字符是長度為1的字符串。

參閱

String.charCodeAt( ), String.indexOf( ), String.lastIndexOf( )

String.charCodeAt( )

返回字符串中的第n個字符的代碼

 


 

   

 

可用性

 

JavaScript 1.2; JScript 5.5; ECMAScript v1

 

語法

 

string.charCodeAt(n)

 

參數

 

n

 

返回編碼的字符的下標。

 

返回值

 

string中的第n個字符的Unicode編碼。這個返回值是0~65535之間的16位整數。

 

描述

 

方法charCodeAt()與charAt()執行的操作相似,只不過前者返回的是位於指定位置的字符的編碼,而后者返回的則是含有字符本身的子串。如果n是負數,或者大於等於字符串的長度,則charCodeAt()返回NaN。

 

要了解從Unicode編碼創建字符串的方法,請參閱String.fromCharCode()。

 

Bug

 

JavaScript 1.2(例如,由Netscape 4.0實現)對16位Unicode字符和字符串沒有提供完全的支持。

 

參閱

 

String.charAt( ), String.fromCharCode( )

 

String.concat( )

連接字符串

 


 

   

 

可用性

 

JavaScript 1.2; JScript 3.0; ECMAScript v3

 

語法

 

string.concat(value, ...)

 

參數

 

value, ...

 

要連接到string上的一個或多個值。

 

返回值

 

把每個參數都連接到字符串string上得到的新字符串。

 

描述

 

方法concat()將把它的所有參數都轉換成字符串(如果必要),然后按順序連接到字符串string的尾部,返回連接后的字符串。注意,string自身並沒有被修改。

 

String.concat()與Array.concat()很相似。注意,使用“+”運算符來進行字符串的連接運算通常更簡便一些。

 

參閱

 

Array.concat( )

 

String.fromCharCode( )

從字符編碼創建—個字符串

 


 

   

 

可用性

 

JavaScript 1.2; JScript 3.0; ECMAScript v1

 

語法

 

String.fromCharCode(c1, c2, ...)

 

參數

 

c1, c2, ...

 

零個或多個整數,聲明了要創建的字符串中的字符的Unicode編碼。

 

返回值

 

含有指定編碼的字符的新字符串。

 

描述

 

這個靜態方法提供了一種創建字符串的方式,即字符串中的每個字符都由單獨的數字Unicode編碼指定。注意,作為—種靜態方法,fromcharCode()是構造函數 String()的屬性,而不是字符串或String對象的方法。

 

String.charCodeAt()是與String.fromCharCode()配套使用的實例方法,它提 供了獲取字符串中單個寧符的編碼的方法。

 

示例

 

// 創建字符串"hello"

 

var s = String.fromCharCode(104, 101, 108, 108, 111);

 

Bug

 

JavaScript 1.2(例如,由Netscape 4.0實現)沒有對16位Unicode編碼的字符和字符串提供完全的支持。

 

參閱

 

String.charCodeAt( )

 

String.indexOf( )

檢索字符串


   

可用性

JavaScript 1.0; JScript 1.0, ECMAScript v1

語法

string.indexOf(substring)

string.indexOf(substring,start)

參數

substring

要在字符串string中檢索的子串。

start

一個可選的整數參數,聲明了在字符串String中開始檢索的位置。它的合法取值是0(字符串中的第一個字符的位置)到string.length-1(字符串中的最后一個字符的位置)。如果省略了這個參數,將從字符串的第一個字符開始檢索。

返回值

如果在string中的start位置之后存在substring返回出現的第一個substring 的位置。如果沒有找到子串substring返回-1。

描述

方法string.indexOf()將從頭到尾的檢索字符串string,看它是否含有子串 substring。開始檢索的位置在字符串string的start處或string的開頭(沒有 指定start參數時)。如果找到了一個substring那么String.indexOf()將返回 substring的第一個字符在string中的位置。string中的字符位置是從0開始的。

如果在string中沒有找到substring,那么String.indexOf()方法將返回-1。

Bug

在JavaScript 1.0和1.1中,如果start的值大於字符串string的長度,indexOf()將返回一個空字符串,而不是返回-1。

參閱

String.charAt( ), String.lastIndexOf( ), String.substring( )

 

 

 

 

String.lastIndexOf( )

從后向前檢索一個字符串


   

可用性

JavaScript 1.0; JScript 1.0, ECMAScript v1

語法

string.lastIndexOf(substring)

string.lastIndexOf(substring, start)

參數

substring

要在字符串string中檢索的子串。

start

一個可選的整數參數,聲明了在字符串string中開始檢索的位置。它的合法取值是0(字符串中的第一個字符的位置)到string.1ength-1(字符串中的最后一個字符的位置)。如果省略了這個參數,將從字符串的最后一個字符處開始檢索。

返回值

如果在string中的start位置之前存在substring那么返回的就是出現的最后一個substring的位置。如果沒有找到子串substring那么返回的是-1。

描述

方法String.1astIndexOf()將從尾到頭的檢索字符串string看它是否含有子串 substring。開始檢索的位置在字符串string的start處或string的結尾(沒有 指定start參數時)。如果找到了一個substring,那么String.lastIndexOf()將返回substring的第一個字符在string中的位置。由於是從尾到頭的檢索一個字符串,所以找到的第一個substrlng其實是strlng中出現在位置start之前的最后一個substring。

如果在string中沒有找到substring,那么該方法將返回-1。

注意,雖然String.1astIndexOf()是從尾到頭的檢索字符串string,但是它返回的字符位置仍然是從頭開始計算的。字符串中第一個字符的位置是0,最后—個字符的位置是string.1ength-1。

參閱

String.charAt( ), String.indexOf( ), String.substring( )

String.length

字符串的長度


   

可用性

JavaScript 1.0; JScript 1.0, ECMAScript v1

語法

string.length

描述

屬性String.1ength是一個只讀整數,它聲明了指定字符串string中的字符數。對於任何一個字符串s,它最后一個字符的下標都是s.1ength-1。用for/in循環不能枚舉出字符串的length屬性,用delete運算符也不能刪除它。

String.localeCompare( )

用本地特定的順序來比較兩個字符串


   

可用性

JavaScript 1.5; JScript 5.5; ECMAScript v3

語法

string.localeCompare(target)

參數

target

要以本地特定的順序與string進行比較的字符串。

返回值

說明比較結果的數字。如果string小於target,則localeCompare()返回小於0的數。如果string大干target,該方法返回大於0的數。如果兩個字符串相等,或根據本地排序規約沒有區別,該方法返回0。

描述

把<和>運算符應用到字符串時,它們只用字符的Unicode編碼比較字符串,而不考慮當地的排序規約。以這種方法生成的順序不一定是正確的。例如,西班牙語中,其中字母“ch”通常作為出現在字母“c”和“d”之間的字符來排序。

localeCompare()方法提供的比較字符串的方法,考慮了默認的本地排序規約。 ECMAScript標准沒有規定如何進行本地特定的比較操作,它只規定該函數采用底層 操作系統提供的排序規約。

示例

可以用下列代6馬,按照地方特定的排序規約對一個字符串數組排序。

var strings; // 要排序的字符串數組,可以在任何地方初始化

strings.sort(function(a,b) { return a.localeCompare(b) });

String.match( )

找到一個或多個正則表達式的匹配


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v3

語法

string.match(regexp)

參數

regexp

聲明了要匹配的模式的RegExp對象。如果該參數不是RegExp對象,則首先將把它傳遞給RegExp()構造函數,把它轉換成RegExp對象。

返回值

存放匹配結果的數組。該數組的內容依賴於regexp是否具有全局性質g。下面詳細說明了這個返回值。

描述

方法match()將檢索字符串string,以找到一個或多個與regexp匹配的文本。這個方法的行為很大程度上依賴於regexp是否具有性質g。

如果regexp沒有性質g,那么match()就只能在string中執行一次匹配,如果沒有找到任何匹配的文本,match()將返回null。否則,它將返回一個數組,其中存放了與它找到的匹配文本有關的信息。該數組的第0個元素存放的是匹配文本,其余的元素存放的是與正則表達式的子表達式匹配的文本。除了這些常規的數組元素之外,返回的數組還含有兩個對象屬性。index屬性聲明的是匹配文本的起始字符在string中的位置,input屬性聲明的是對string的引用。

如果regexp具有標志g,那么match()將執行全局檢索,找到string中的所有匹配子串。如果沒有找到任何匹配的子串。它將返回null。如果找到了一個或多個匹配子串,它將返回一個數組。不過,全局匹配返回的數組的內容與前者大不相同,它的數組元素存放的是string中的所有匹配子串,而且它也沒有index屬性和input屬性。注意,在全局匹配的模式下,match()既不提供與子表達式匹配的文本的信息,也不聲明每個匹配子串的位置。如果你需要這些全局檢索的信息,可以使用RegExp.exec()。

示例

下面的全局匹配可以找到字符串中的所有數字:

"1 plus 2 equals 3".match(/\d+/g) // 返回 ["1", "2", "3"]

下面的非全局匹配使用了更加復雜的正則表達式,它具有幾個用括號括起來的子表達式。與該表達式匹配的是一個URL,與它的子表達式匹配的是那個URL的協議部分、主機部分和路徑部分:

var url = /(\w+):\/\/([\w.]+)\/(\S*)/;

var text = "Visit my home page at http://www.isp.com/~david";

var result = text.match(url);

if (result != null) {

var fullurl = result[0]; // 包含"http://www.isp.com/~david"

var protocol = result[1]; // 包含"http"

var host = result[2]; // 包含"www.isp.com"

var path = result[3]; // 包含"~david"

}

參閱

RegExp, RegExp.exec( ), RegExp.test( ), String.replace( ), String.search( )

String.replace( )

替換一個與正則表達式匹配的子串


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v3

語法

string.replace(regexp, replacement)

參數

regexp

聲明了要替換的模式的RegExp對象。如果該參數是一個字符串,則將它作為要檢索的直接量文本模式,而不是首先被轉換成RegExp對象。

replacement

一個字符串,聲明的是替換文本或生成替換文本的函數。詳見描述部分。

返回值

一個新字符串,是用replacemenc替換了與regexp的第一次匹配或所有匹配之后得到的。

描述

字符串string的方法replace()執行的是查找並替換的操作。它將在string中查找與regexp相匹配的子串,然后用replacement替換這些子串。如果regexp具有全局性質g,那么replace()將替換所有的匹配子串。否則,它只替換第一個匹配子串。

replacement可能是字符串或函數。如果它是一個字符串,那么每個匹配都將由字符 串替換。但replacement中的$字符具有特殊的含義。如下表所示,它說明從模式匹配得到的字符串將用於替換。

Characters

Replacement

$1, $2, ... $99

與regexp中的第1到第99個子表達式相匹配的文本

$&

與regexp相匹配的子串

$`

位於匹配子串左側的文本

$'

位於匹配子串右側的文本

$$

直接量$符號

ECMAScript v3規定,replace()方法的參數replacement可以是函數而不是字符串,JavaScipt 1.2和JScript 5.5實現了這一特性。在這種情況下,每個匹配都調用該函數,它返回的字符串將作為替換文本使用。該函數的第一個參數是匹配模式的字 符串。接下來的參數是與模式中的子表達式匹配的字符串,可以有0個或多個這樣的參數。接下來參數是一個整數,聲明了匹配在string中出現的位置。最后一個參數是string自身。

示例

要確保單詞“JavaScript'’中的大寫字符是正確的,可用下列代碼:

text.replace(/javascript/i, "JavaScript");

要將名字“Doe,John”轉換成“JohnDoe”的形式,可用下列代碼:

name.replace(/(\w+)\s*,\s*(\w+)/, "$2 $1");

用花引號替換直引號,可用下列代碼:

text.replace(/"([^"]*)"/g, "``$1''");

使字符串中所有單詞的第一個字母都是大寫的,可用下列代碼:

text.replace(/\b\w+\b/g, function(word) {

return word.substring(0,1).toUpperCase( ) +

word.substring(1);

});

參閱

RegExp, RegExp.exec( ), RegExp.test( ), String.match( ), String.search( )

String.search( )

檢索與正則表達式相匹配的子串


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v3

語法

string.search(regexp)

參數

regexp

要在字符串string中檢索的RegExp對象,該對象具有指定的模式。如果該參數不是RegExp對象,則首先將它傳遞給RegExp()構造函數,把它轉換成 RegExp對象。

返回值

string中第一個與regexp相匹配的子串的起始位置。如果沒有找到任何匹配的子 串,則返回-1。

描述

方法search()將在字符串string中檢索與regexp相匹配的子串,並且返回第一個匹配子串的第一個字符的位置。如果沒有找到任何匹配的子串,則返回-1。

search()並不執行全局匹配,它將忽略標志g。它也忽略regexp的lastIndex屬性,並且總是從字符串的開始進行檢索,這意味着它總是返回string的第一個匹配的位置。

示例

var s = "JavaScript is fun";

s.search(/script/i) // 返回 4

s.search(/a(.)a/) // 返回 1

參閱

RegExp, RegExp.exec( ), RegExp.test( ), String.match( ), String.replace( )

String.slice( )

抽取一個子串


   

可用性

JavaScript 1.2; JScript 3.0; ECMAScript v3

語法

string.slice(start, end)

參數

start

要抽取的片段的起始下標。如果是負數,那么該參數聲明了從字符串的尾部開始算起的位置。也就是說,-1指字符串中的最后一個字符,-2指倒數第二個字符,以此類推。

end

緊接着要抽取的片段的結尾的下標。如果沒有指定這一參數,那么要抽取的子串包括start到原字符串結尾的字符串。如果該參數是負數,那么它聲明了從字符串的尾部開始算起的位置。

返回值

一個新字符串,包括字符串string從start開始(包括start)到end為止(不包 括end)的所有字符。

描述

方法slice()將返回一個含有字符串string的片段的字符串或返回它的一個子串。 但是該方法不修改string。

String對象的方法slice()、substring()和substr()(不建議使用)都返回字符串的指定部分。slice()比substring()要靈活一些,因為它允許使用負數作為參數。slice()與substr()有所不同, 因為它用兩個字符的位置指定子串,而substr()則用字符位置和長度來指定子串。還要注意的是,String.slice()與Array.slice()相似。

示例

var s = "abcdefg";

s.slice(0,4) // 返回 "abcd"

s.slice(2,4) // 返回 "cd"

s.slice(4) // 返回 "efg"

s.slice(3,-1) // 返回 "def"

s.slice(3,-2) // 返回 "de"

s.slice(-3,-1) // 應該返回 "ef";返回"abcdef" in IE 4

Bug

在JScript 3.0(InternetExplorer 4)中,參數start的值是不能是負數。負的start值指定的不是從字符串尾部開始算起的字符位置,而是指定第0個字符的位置。

參閱

Array.slice( ), String.substring( )

String.split( )

將字符串分割成字符串數組


   

可用性

JavaScript 1.1; JScript 3.0; ECMAScript v1; 在ECMAScript v3中得到增強

語法

string.split(delimiter, limit)

參數

delimiter

字符串或正則表達式,從該參數指定的地方分割string。ECMAScript V3標准化了正則表達式作為定界符使用時的用法,JavaScript 1.2和JScript 3.0實現了它。JavaScriptl.1沒有實現它。

limit

這個可選的整數指定了返回的數組的最大長度。如果設置了該參數,返回的子串不會多於這個參數指定的數字。如果沒有設置該參數,整個字符串都會被分割,不考慮它的長度。ECMAScriptv3標准化了該參數,JavaScript 1.2和JScript 3.0實現了它。JavaScript 1.1沒有實現它。

返回值

一個字符串數組,是通過在delimiter指定的邊界處將字符串string分割成子串創建的。返回的數組中的子串不包括delimiter自身,但下面列出的情況除外。

描述

方法split()將創建並返回一個字符串數組,該數組中的元素是指定的字符串string 的子串,最多具有limit個。這些子串是通過從頭到尾檢索字符串中與delimiter 匹配的文本,在匹配文本之前和之后分割string得到的。返回的子串中不包括定界符 文本(下面提到的情況除外)。如果定界符從字符串開頭開始匹配,返回的數組的第一個元素是空串,即出現在定界符之前的文本。同樣,如果定界符與字符串的結尾匹 配,返回的數組的最后一個元素也是空串(假定與limit沒有沖突)。

如果沒有指定delimiter,那么它根本就不對string執行分割,返回的數組中只有一個元素,而不分割字符串元素。如果delimiter是一個空串或與空串匹配的正則表 達式,那么string中的每個字符之間都會被分割,返回的數組的長度與字符串長度相 等(假定王imic不小於該長度)。(注意,這是一種特殊情況,因為沒有匹配第一個字符之前和最后一個字符之后的空串。)

前面說過,該方法返回的數組中的子串不包括用於分割字符串的定界符文本。但如果delimiter是包括子表達式的正則表達式,那么返回的數組中包括與這些子表達式匹 配的子串(但不包括與整個正則表達式匹配的文本)。

注意,String.split()執行的操作與Array.join()執行的操作相反。

示例

在使用結構復雜的字符串時,方法split()最有用。例如:

"1:2:3:4:5".split(":"); // 返回 ["1","2","3","4","5"]

"|a|b|c|".split("|"); // 返回 ["", "a", "b", "c", ""]

split()方法的另—個常見用法是解析命令和與之相似的字符串,用空格將它們分割 成單詞:

var words = sentence.split(' ');

關於delimiter是一個空格的情況,詳見“Bug'’小節。用正則表達式作為定界符, 很容易把字符串分割成單詞:

var words = sentence.split(/\s+/);

要把字符串分割成字符數組,可以用空串作為定界符。如果只想把字符串的前一部分 分割成字符數組,需要使用limit參數:

"hello".split(""); // 返回 ["h","e","l","l","o"]

"hello".split("", 3); // 返回 ["h","e","l"]

如果想使返回的數組包括定界符或定界符的一個或多個部分,可以使用帶子表達式的正則表達式。例如,下面的代碼將在HTML標記處分割字符串,返回的數組中包括這些標記:

var text = "hello <b>world</b>";

text.split(/(<[^>]*>)/); // 返回 ["hello ","<b>","world","</b>",""]

Bug

在JavaScript的Netscape實現中,如果明確地把語言版本設置為1.2,split()方法具有特殊的行為,即如果delimiter 是一個空格,該方法將在空格處分割字符串,忽略字符串開頭和結尾處的空白。

參閱

Array.join( ), RegExp; Chapter 10

 

 

String.substr( )

抽取一個子串


   

可用性

JavaScript 1.2; JScript 3.0; 不贊成使用

語法

string.substr(start, length)

參數

start

要抽取的子串的起始下標。如果是一個負數,那么該參數聲明從字符串的尾部開始算起的位置。也就是說,-1指字符串中的最后—個字符,-2指倒數第二個字符,以此類推。

length

子串中的字符數。如果省略了這個參數,那么返回從string的開始位置到結尾的子串。

返回值

一個字符串的副本,包括從string的start處(包括start所指的字符)開始的1ength個字符。如果沒有指定length,返回的字符串包含從start到string結尾的字符。

描述

substr()將在string中抽取並返回一個子串。但是它並不修改string。

注意,substr()指定的是子串的開始位置和長度,它是String.substring()和String.splice()的一種有用的替代方法,后兩者指定的都是起始字符的位置。但要注意,ECMAScript沒有標准化該方法,因此反對使用它。

示例

var s = "abcdefg";

s.substr(2,2); // 返回 "cd"

s.substr(3); // 返回 "defg"

s.substr(-3,2); // 應該返回 "ef"; 在IE4中返回 "ab"

Bug

在lScript 3.0(Internet Explorer 4)中,參數start的值不能為負數。負的start值指定的不是從字符串尾部開始算起的字符位置,而是第0個字符的位置。

參閱

String.slice( ), String.substring( )

String.substring( )

返回字符串的一個子串


   

可用性

JavaScript 1.0; JScript 1.0, ECMAScript v1

語法

string.substring(from, to)

參數

from

一個整數,聲明了要抽取的子串的第一個字符在string中的位置。

to

一個可選的整數,比要抽取的子串的最后一個字符在string中的位置多1。如果省略了該參數,返回的子串直到字符串的結尾。

返回值

一個新字符串,其長度為to-from,存放的是字符串string的一個子串。這個新字符串含有的字符是從string中的from處到to-1處復制的。

描述

String.substring()將返回字符串string的子串,由from到to之間的字符構成, 包括位於from的字符,不包括位於to的字符。

如果參數from與to相等,那么該方法返回的就是一個空串(即長度為0的字符串)。 如果from比to大,那么該方法在抽取子串之前會先交換這兩個參數。

要記住,該子串包括from處的字符,不包括to處的字符。雖然這樣看來有違直覺, 但這種系統一個值得注意重要特性是,返回的子串的長度總等於to-from。

Bug

在JavaScript的Netscape實現中,如果明確地把語言版本設置為1.2(如把<script>標記的language性質設置為1.2),那么如果from比to大,該方法不能正確地交換它的參數,而是返回空串。

參閱

String.charAt( ), String.indexOf( ), String.lastIndexOf( ), String.slice( ), String.substr( )

String.toLocaleLowerCase( )

把字符串轉換小寫


   

可用性

JavaScript 1.5; JScript 5.5, ECMAScript v3

語法

string.toLocaleLowerCase( )

返回值

string的一個副本,按照本地方式轉換成小寫字母。只有幾種語言(如土耳其語)具有地方特有的大小寫映射,所以該方法的返回值通常與toLowerCase()一樣。

參閱

String.toLocaleUpperCase( ), String.toLowerCase( ), String.toUpperCase( )

String.toLocaleUpperCase( )

將字符串轉換成大寫


   

可用性

JavaScript 1.5; JScript 5.5, ECMAScript v3

語法

string.toLocaleUpperCase( )

返回值

string的一個副本,按照本地方式轉換成了大寫字母。只有幾種語言(如土耳其語) 具有地方特有的大小寫映射,所以該方法的返回值通常與toUpperCase()一樣。

參閱

String.toLocaleLowerCase( ), String.toLowerCase( ), String.toUpperCase( )

String.toLowerCase( )

將字符串轉換成小寫


   

可用性

JavaScript 1.0; JScript 1.0, ECMAScript v1

語法

string.toLowerCase( )

返回值

string的一個副本,其中所有大寫字符都被轉換成了小寫字符。

String.toUpperCase( )

將字符串轉換成大寫


   

可用性

JavaScript 1.0; JScript 1.0, ECMAScript v1

語法

string.toUpperCase( )

返回值

string的一個副本,其中所有小寫字符都被轉換成了大寫的。

String.valueOf( )

返回字符串


   

可用性

JavaScript 1.0; JScript 1.0, ECMAScript v1 Overrides Object.valueOf( )

語法

string.valueOf( )

返回值

string的原始字符串值。

拋出

TypeError

調用該方法的對象不是String時拋出該異常。

參閱

String.toString( )

String.toString( )

返回字符串


   

可用性

JavaScript 1.0; JScript 1.0, ECMAScript v1 Overrides Object.toString( )

語法

string.toString( )

返回值

string的原始字符串值。一般不會調用該方法。

拋出

TypeError

調用該方法的對象不是String時拋出該異常。

參閱

String.valueOf( )

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM