<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    憨厚生

    ----Java's Slave----
    ***Java's Host***

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      165 隨筆 :: 17 文章 :: 90 評(píng)論 :: 0 Trackbacks

    JavaScript中的高級(jí)特性及特別對(duì)象、屬性和方法


    一,編寫構(gòu)造函數(shù)
    可以使用?new?運(yùn)算符結(jié)合像?Object()、Date()?和?Function()?這樣的預(yù)定義的構(gòu)造函數(shù)來(lái)創(chuàng)建對(duì)象并對(duì)其初始化。面向?qū)ο蟮木幊唐鋸?qiáng)有力的特征是定義自定義構(gòu)造函數(shù)以創(chuàng)建腳本中使用的自定義對(duì)象的能力。創(chuàng)建了自定義的構(gòu)造函數(shù),這樣就可以創(chuàng)建具有已定義屬性的對(duì)象。下面是自定義函數(shù)的示例(注意?this?關(guān)鍵字的使用)。

    function?Circle?(xPoint,?yPoint,?radius)?{
    ????this.x?=?xPoint;??//?圓心的?x?坐標(biāo)
    ????this.y?=?yPoint;??//?圓心的?y?坐標(biāo)
    ????this.r?=?radius;??//?圓的半徑
    }
    調(diào)用?Circle?構(gòu)造函數(shù)時(shí),給出圓心點(diǎn)的值和圓的半徑(所有這些元素是完全定義一個(gè)獨(dú)特的圓對(duì)象所必需的)。結(jié)束時(shí)?Circle?對(duì)象包含三個(gè)屬性。下面是如何例示?Circle?對(duì)象。

    var?aCircle?=?new?Circle(5,?11,?99);

    二,使用原型來(lái)創(chuàng)建對(duì)象
    在編寫構(gòu)造函數(shù)時(shí),可以使用原型對(duì)象(它本身是所有構(gòu)造函數(shù)的一個(gè)屬性)的屬性來(lái)創(chuàng)建繼承屬性和共享方法。原型屬性和方法將按引用復(fù)制給類中的每個(gè)對(duì)象,因此它們都具有相同的值。可以在一個(gè)對(duì)象中更改原型屬性的值,新的值將覆蓋默認(rèn)值,但僅在該實(shí)例中有效。屬于這個(gè)類的其他對(duì)象不受此更改的影響。下面給出了使用自定義構(gòu)造函數(shù)的示例,Circle(注意?this?關(guān)鍵字的使用)。

    Circle.prototype.pi?=?Math.PI;
    function?ACirclesArea?()?{
    ??return?this.pi?*?this.r?*?this.r;?//?計(jì)算圓面積
    }
    Circle.prototype.area?=?ACirclesArea;?//?計(jì)算圓面積的函數(shù)現(xiàn)在是?Circle?Prototype?對(duì)象的一個(gè)方法
    var?a?=?ACircle.area();???????????????//?此為如何在?Circle?對(duì)象上調(diào)用面積函數(shù)

    使用這個(gè)原則,可以給預(yù)定義的構(gòu)造函數(shù)(都具有原型對(duì)象)定義附加屬性。例如,如果想要能夠刪除字符串的前后空格(與?VBScript?的?Trim?函數(shù)類似),就可以給?String?原型對(duì)象創(chuàng)建自己的方法。

    //?增加一個(gè)名為?trim?的函數(shù)作為
    //?String?構(gòu)造函數(shù)的原型對(duì)象的一個(gè)方法。
    String.prototype.trim?=?function()?{
    ??return?this.replace(/(^\s*)|(\s*$)/g,?"");???//?用正則表達(dá)式將前后空格
    }
    var?s?=?"????leading?and?trailing?spaces????";?//?有空格的字符串
    window.alert(s?+?"?("?+?s.length?+?")");
    s?=?s.trim();??????????????????????????????????//?刪除前后空格
    window.alert(s?+?"?("?+?s.length?+?")");



    三,特別對(duì)象、屬性和方法
    -------------------
    Error?對(duì)象:保存有關(guān)錯(cuò)誤的信息。

    var?newErrorObj?=?new?Error()

    var?newErrorObj?=?new?Error(
    ??number
    )

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

    Error?對(duì)象的構(gòu)造函數(shù)語(yǔ)法有以下部分:?

    參數(shù):-number。與錯(cuò)誤相聯(lián)的數(shù)字值。如果省略則為零。
    ??????-description。描述錯(cuò)誤的簡(jiǎn)短字符串。如果省略則為空字符串。

    說(shuō)明:每當(dāng)產(chǎn)生運(yùn)行時(shí)錯(cuò)誤,就產(chǎn)生?Error?對(duì)象的一個(gè)實(shí)例以描述錯(cuò)誤。該實(shí)例有兩個(gè)固有屬性保存錯(cuò)誤的描述(description?屬性)和錯(cuò)誤號(hào)(number?屬性)。

    錯(cuò)誤號(hào)是?32?位的值。高?16?位字是設(shè)備代碼,而低字是實(shí)際的錯(cuò)誤代碼。

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

    典型地,在?try...catch?語(yǔ)句中創(chuàng)建的局部變量引用隱式創(chuàng)建的?Error?對(duì)象。因此,可以按選擇的任何方法使用錯(cuò)誤號(hào)和描述。

    下面的例子演示了隱式創(chuàng)建?Error?對(duì)象的使用:
    try?{?
    ??x?=?y;?????????????????????????????//?產(chǎn)生錯(cuò)誤。
    }?catch(e)?{?????????????????????????//?創(chuàng)建局部變量?e。
    ??response.write(e)??????????????????//?打印?"[object?Error]".
    ??response.write(e.number?&?0xFFFF)??//?打印?5009。
    ??response.write(e.description)??????//?打印?"'y'?is?undefined".
    }


    -------------------
    Function?對(duì)象:創(chuàng)建新的函數(shù)。

    語(yǔ)法?1
    function?functionName([argname1?[,?...[,?argnameN]]])?{
    ???//body
    }

    語(yǔ)法?2
    functionName?=?new?Function(?[argname1,?[...?argnameN,]]?body?);

    參數(shù):-functionName。必選項(xiàng)。最新創(chuàng)建函數(shù)的名稱
    ??????-argname1...argnameN。可選項(xiàng)。函數(shù)接收的參數(shù)列表。
    ??????-body。可選項(xiàng)。包含調(diào)用該函數(shù)時(shí)被執(zhí)行的?JScript?代碼塊的字符串。

    說(shuō)明:函數(shù)?JScript?中的基本數(shù)據(jù)類型。語(yǔ)法?1?創(chuàng)建在必要時(shí)由?JScript?轉(zhuǎn)換為?Function?對(duì)象的函數(shù)值。JScript?在調(diào)用函數(shù)時(shí)將用語(yǔ)法?2?創(chuàng)建的函數(shù)轉(zhuǎn)換為?Fnction?對(duì)象。?

    語(yǔ)法?1?是?JScript?中創(chuàng)建函數(shù)的基本方法。語(yǔ)法?2?是用于顯式創(chuàng)建函數(shù)對(duì)象的另一方法。?

    例如,要?jiǎng)?chuàng)建將傳遞給它的兩個(gè)參數(shù)相加的函數(shù),可以用兩種方法中的任一種完成:?

    例子?1
    function?add(x,?y)?{
    ??return(x?+?y);????????????//?執(zhí)行加法并返回結(jié)果。
    }
    例子?2
    var?add?=?new?Function("x",?"y",?"return(x+y)");
    在兩種情況下,都可以用如下代碼行調(diào)用該函數(shù):?

    add(2,?3);
    注意???在調(diào)用函數(shù)時(shí),請(qǐng)確保包含了括號(hào)和必需的參數(shù)。調(diào)用函數(shù)時(shí)不用括號(hào)導(dǎo)致返回函數(shù)的文本而不是函數(shù)執(zhí)行的結(jié)果。


    -------------------
    Object?對(duì)象:提供所有?JScript?對(duì)象通用的功能。

    obj?=?new?Object([value])?

    參數(shù):-obj。必選項(xiàng)。要賦值為?Object?對(duì)象的變量名。
    ??????-value。可選項(xiàng)。任意一種?JScript?基本數(shù)據(jù)類型。(Number、Boolean、或?String。)如果?value?為一個(gè)對(duì)象,返回不作改動(dòng)的該對(duì)象。如果?value?為?null、undefined,或者沒有給出,則產(chǎn)生沒有內(nèi)容的對(duì)象。

    說(shuō)明:Object?對(duì)象被包含在所有其它?JScript?對(duì)象中;在所有其它對(duì)象中它的方法和屬性都是可用的。在用戶定義的對(duì)象中可以重定義這些方法,并在適當(dāng)?shù)臅r(shí)候通過?JScript?調(diào)用。toString?方法是經(jīng)常被重定義的?Object?方法的例子。



    -------------------
    arguments?屬性:為當(dāng)前執(zhí)行的?function?對(duì)象返回一個(gè)arguments?對(duì)象。

    function.arguments

    function?參數(shù)是當(dāng)前執(zhí)行函數(shù)的名稱,可以省略。?

    說(shuō)明:通過?arguments?屬性,函數(shù)可以處理可變數(shù)量的參數(shù)。?arguments?對(duì)象的?length?屬性包含了傳遞給函數(shù)的參數(shù)的數(shù)目。對(duì)于arguments?對(duì)象所包含的單個(gè)參數(shù),其訪問方法與數(shù)組中所包含的參數(shù)的訪問方法相同。

    示例:下面的例子說(shuō)明了?arguments?屬性的用法:

    function?ArgTest()?{
    ???var?i,?s,?numargs?=?arguments.length;
    ???s?=?numargs;??
    ???if?(numargs?<?2)
    ?????s?+=?"?argument?was?passed?to?ArgTest.?It?was?";
    ???else
    ?????s?+=?"?arguments?were?passed?to?ArgTest.?They?were?"?;
    ???for?(i?=?0;?i?<?numargs;?i++)?{
    ?????s?+=?arguments[i]?+?"?";
    ???}
    ???return(s);
    }


    -------------------
    callee?屬性:返回正被執(zhí)行的?Function?對(duì)象,也就是所指定的?Function?對(duì)象的正文。

    [function.]arguments.callee

    可選項(xiàng)?function?參數(shù)是當(dāng)前正在執(zhí)行的?Function?對(duì)象的名稱。?

    說(shuō)明:callee?屬性是?arguments?對(duì)象的一個(gè)成員,僅當(dāng)相關(guān)函數(shù)正在執(zhí)行時(shí)才可用。

    callee?屬性的初始值就是正被執(zhí)行的?Function?對(duì)象。這允許匿名的遞歸函數(shù)。

    示例:
    function?factorial(n)?{
    ?if?(n?<=?0)
    ???return?1;
    ?else
    ??return?n?*?arguments.callee(n?-?1)
    }
    print(factorial(3));

    要求:版本5.5或以上。


    -------------------
    caller?屬性:返回一個(gè)對(duì)函數(shù)的引用,該函數(shù)調(diào)用了當(dāng)前函數(shù)。

    functionName.caller?

    functionName?對(duì)象是所執(zhí)行函數(shù)的名稱。

    說(shuō)明:對(duì)于函數(shù)來(lái)說(shuō),caller?屬性只有在函數(shù)執(zhí)行時(shí)才有定義。?如果函數(shù)是由?JScript?程序的頂層調(diào)用的,那么?caller?包含的就是?null?。

    如果在字符串上下文中使用?caller?屬性,那么結(jié)果和?functionName.toString?一樣,也就是說(shuō),顯示的是函數(shù)的反編譯文本。

    下面的例子說(shuō)明了?caller?屬性的用法:
    function?CallLevel()?{
    ??if?(CallLevel.caller?==?null)
    ????return("CallLevel?was?called?from?the?top?level.");
    ??else
    ????return("CallLevel?was?called?by?another?function.");
    }


    -------------------
    constructor?屬性:表示創(chuàng)建對(duì)象的函數(shù)。?

    object.constructor

    必需的?object是對(duì)象或函數(shù)的名稱。?

    說(shuō)明:constructor?屬性是所有具有?prototype?的對(duì)象的成員。它們包括除?Global?和?Math?對(duì)象以外的所有?JScript?固有對(duì)象。constructor?屬性保存了對(duì)構(gòu)造特定對(duì)象實(shí)例的函數(shù)的引用。?

    例如:?
    x?=?new?String("Hi");
    if?(x.constructor?==?String)?//?進(jìn)行處理(條件為真)。
    或?
    function?MyFunc?{
    ???//?函數(shù)體。
    }
    y?=?new?MyFunc;
    if?(y.constructor?==?MyFunc)?//?進(jìn)行處理(條件為真)。


    -------------------
    description?屬性:返回或設(shè)置與特定錯(cuò)誤相聯(lián)系的描述字符串。

    object.description?[=?stringExpression]

    description?屬性的語(yǔ)法組成部分如下:

    參數(shù):-object。必選項(xiàng)。Error?對(duì)象的任意實(shí)例。
    ??????-stringExpression。可選項(xiàng)。包含錯(cuò)誤描述的字符串表達(dá)式。

    說(shuō)明:description?屬性包含與特定錯(cuò)誤相聯(lián)系的錯(cuò)誤信息字符串。使用包含在這個(gè)中的值,來(lái)警告用戶發(fā)生了一個(gè)不能或不想處理的錯(cuò)誤。


    -------------------
    prototype?屬性:返回對(duì)象類型原型的引用。

    objectName.prototype

    objectName?參數(shù)是對(duì)象的名稱。?

    說(shuō)明:用?prototype?屬性提供對(duì)象的類的一組基本功能。?對(duì)象的新實(shí)例“繼承”賦予該對(duì)象原型的操作。?

    例如,要為?Array?對(duì)象添加返回?cái)?shù)組中最大元素值的方法。?要完成這一點(diǎn),聲明該函數(shù),將它加入?Array.prototype,?并使用它。?

    function?array_max(?)?{
    ??var?i,?max?=?this[0];
    ??for?(i?=?1;?i?<?this.length;?i++)?{
    ????if?(max?<?this[i])
    ??????max?=?this[i];
    ??}
    ??return?max;
    }
    Array.prototype.max?=?array_max;
    var?x?=?new?Array(1,?2,?3,?4,?5,?6);
    var?y?=?x.max(?);
    該代碼執(zhí)行后,y?保存數(shù)組?x?中的最大值,或說(shuō)?6。

    所有?JScript?固有對(duì)象都有只讀的?prototype?屬性。可以象該例中那樣為原型添加功能,但該對(duì)象不能被賦予不同的原型。然而,用戶定義的對(duì)象可以被賦給新的原型。



    -------------------
    apply?方法:應(yīng)用某一對(duì)象的一個(gè)方法,用另一個(gè)對(duì)象替換當(dāng)前對(duì)象。

    apply([thisObj[,argArray]])

    參數(shù):-thisObj。可選項(xiàng)。將被用作當(dāng)前對(duì)象的對(duì)象。
    ??????-argArray。可選項(xiàng)。將被傳遞給該函數(shù)的參數(shù)數(shù)組。

    說(shuō)明:如果?argArray?不是一個(gè)有效的數(shù)組或者不是?arguments?對(duì)象,那么將導(dǎo)致一個(gè)?TypeError。

    如果沒有提供?argArray?和?thisObj?任何一個(gè)參數(shù),那么?Global?對(duì)象將被用作?thisObj,?并且無(wú)法被傳遞任何參數(shù)。

    要求:版本5.5或以上。


    -------------------
    call?方法:調(diào)用一個(gè)對(duì)象的一個(gè)方法,以另一個(gè)對(duì)象替換當(dāng)前對(duì)象。

    call([thisObj[,arg1[,?arg2[,???[,.argN]]]]])

    參數(shù):-thisObj。可選項(xiàng)。將被用作當(dāng)前對(duì)象的對(duì)象。
    ??????-arg1,?arg2,??,?argN。可選項(xiàng)。將被傳遞方法參數(shù)序列。

    說(shuō)明:call?方法可以用來(lái)代替另一個(gè)對(duì)象調(diào)用一個(gè)方法。call?方法可將一個(gè)函數(shù)的對(duì)象上下文從初始的上下文改變?yōu)橛?thisObj?指定的新對(duì)象。

    如果沒有提供?thisObj?參數(shù),那么?Global?對(duì)象被用作?thisObj。

    要求:版本5.5或以上。


    -------------------
    concat?方法?(Array):返回一個(gè)新數(shù)組,這個(gè)新數(shù)組是由兩個(gè)或更多數(shù)組組合而成的。

    array1.concat([item1[,?item2[,?.?.?.?[,?itemN]]]])

    參數(shù):-array1。必選項(xiàng)。其他所有數(shù)組要進(jìn)行連接的?Array?對(duì)象。?
    ??????-item1,.?.?.,?itemN。可選項(xiàng)。要連接到?array1?末尾的其他項(xiàng)目。

    說(shuō)明:concat?方法返回一個(gè)?Array?對(duì)象,其中包含了?array1?和提供的任意其他項(xiàng)目的連接。

    要加的項(xiàng)目(item1?…?itemN)會(huì)按照從左到右的順序添加到數(shù)組。如果某一項(xiàng)為數(shù)組,那么添加其內(nèi)容到?array1?的末尾。如果該項(xiàng)目不是數(shù)組,就將其作為單個(gè)的數(shù)組元素添加到數(shù)組的末尾。

    以下為從源數(shù)組復(fù)制元素到結(jié)果數(shù)組:?

    對(duì)于從正被連接到新數(shù)組的數(shù)組中復(fù)制的對(duì)象參數(shù),復(fù)制后仍然指向相同的對(duì)象。不論新數(shù)組和源數(shù)組中哪一個(gè)有改變,都將引起另一個(gè)的改變。?
    對(duì)于連接到新數(shù)組的數(shù)值或字符串,只復(fù)制其值。一個(gè)數(shù)組中值有改變并不影響另一個(gè)數(shù)組中的值。?

    示例:下面這個(gè)例子說(shuō)明了使用數(shù)組時(shí)?concat?方法的用法:?
    function?ConcatArrayDemo()?{
    ??var?a,?b,?c,?d;
    ??a?=?new?Array(1,2,3);
    ??b?=?"JScript";
    ??c?=?new?Array(42,?"VBScript);
    ??d?=?a.concat(b,?c);??//?返回?cái)?shù)組?[1,?2,?3,?"JScript",?42,?"VBScript"]
    ??return(d);
    }


    -------------------
    escape?方法:對(duì)?String?對(duì)象編碼以便它們能在所有計(jì)算機(jī)上可讀。

    escape(charString)

    必選項(xiàng)?charstring?參數(shù)是要編碼的任意?String?對(duì)象或文字。?

    說(shuō)明:escape?方法返回一個(gè)包含了?charstring?內(nèi)容的字符串值(?Unicode?格式)。所有空格、標(biāo)點(diǎn)、重音符號(hào)以及其他非?ASCII?字符都用?%xx?編碼代替,其中?xx?等于表示該字符的十六進(jìn)制數(shù)。例如,空格返回的是?"%20"?。

    字符值大于?255?的以?%uxxxx?格式存儲(chǔ)。?

    注意:escape?方法不能夠用來(lái)對(duì)統(tǒng)一資源標(biāo)示碼?(URI)?進(jìn)行編碼。對(duì)其編碼應(yīng)使用?encodeURI?和encodeURIComponent?方法。


    -------------------
    unescape?方法:解碼用?escape?方法進(jìn)行了編碼的?String?對(duì)象。?

    unescape(charstring)?

    必選項(xiàng)?charstring?參數(shù)是要解碼的?String?對(duì)象。?

    說(shuō)明:unescape?方法返回一個(gè)包含?charstring?內(nèi)容的字符串值。所有以?%xx?十六進(jìn)制形式編碼的字符都用?ASCII?字符集中等價(jià)的字符代替。?

    以?%uxxxx?格式(Unicode?字符)編碼的字符用十六進(jìn)制編碼?xxxx?的?Unicode?字符代替。?

    注意:unescape?方法不能用于解碼統(tǒng)一資源標(biāo)識(shí)碼?(URI)。解該碼可使用?decodeURI?和?decodeURIComponent?方法。


    -------------------
    eval?方法:檢查?JScript?代碼并執(zhí)行。

    eval(codeString)

    必選項(xiàng)?codestring?參數(shù)是包含有效?JScript?代碼的字符串值。這個(gè)字符串將由?JScript?分析器進(jìn)行分析和執(zhí)行。

    說(shuō)明:eval?函數(shù)允許?JScript?源代碼的動(dòng)態(tài)執(zhí)行。例如,下面的代碼創(chuàng)建了一個(gè)包含?Date?對(duì)象的新變量?mydate?:

    eval("var?mydate?=?new?Date();");

    傳遞給?eval?方法的代碼執(zhí)行時(shí)的上下文和調(diào)用?eval?方法的一樣.?


    -------------------
    encodeURI?方法:將文本字符串編碼為一個(gè)有效的統(tǒng)一資源標(biāo)識(shí)符?(URI)。

    encodeURI(URIString)

    必選的?URIString?參數(shù)代表一個(gè)已編碼的?URI。

    說(shuō)明:encodeURI?方法返回一個(gè)編碼的?URI。如果您將編碼結(jié)果傳遞給?decodeURI,那么將返回初始的字符串。encodeURI?方法不會(huì)對(duì)下列字符進(jìn)行編碼:":"、"/"、";"?和?"?"。請(qǐng)使用?encodeURIComponent?方法對(duì)這些字符進(jìn)行編碼。

    要求:版本5.5或以上。


    -------------------
    decodeURI?方法:返回一個(gè)已編碼的統(tǒng)一資源標(biāo)識(shí)符?(URI)?的非編碼形式。

    decodeURI(URIstring)

    必要的?URIstring?參數(shù)代表一個(gè)已編碼?URI?的值。

    說(shuō)明:使用?decodeURI?方法代替已經(jīng)過時(shí)的?unescape?方法。

    decodeURI?方法返回一個(gè)字符串值。

    如果?URIString?無(wú)效,那么將產(chǎn)生一個(gè)?URIError。

    要求:版本5.5或以上。


    -------------------
    encodeURIComponent?方法:將文本字符串編碼為一個(gè)統(tǒng)一資源標(biāo)識(shí)符?(URI)?的一個(gè)有效組件。

    encodeURIComponent(encodedURIString)

    必選的?encodedURIString?參數(shù)代表一個(gè)已編碼的?URI?組件。

    說(shuō)明:encodeURIComponent?方法返回一個(gè)已編碼的?URI。如果您將編碼結(jié)果傳遞給?decodeURIComponent,那么將返回初始的字符串。因?yàn)?encodeURIComponent?方法對(duì)所有的字符編碼,請(qǐng)注意,如果該字符串代表一個(gè)路徑,例如?/folder1/folder2/default.html,其中的斜杠也將被編碼。這樣一來(lái),當(dāng)該編碼結(jié)果被作為請(qǐng)求發(fā)送到?web?服務(wù)器時(shí)將是無(wú)效的。如果字符串中包含不止一個(gè)?URI?組件,請(qǐng)使用?encodeURI?方法進(jìn)行編碼。

    要求:版本5.5或以上。


    -------------------
    decodeURIComponent?方法:返回統(tǒng)一資源標(biāo)識(shí)符?(URI)?的一個(gè)已編碼組件的非編碼形式。

    decodeURIComponent(encodedURIString)

    必選的?encodedURIString?參數(shù)代表一個(gè)已編碼的?URI?組件。

    說(shuō)明:URIComponent?是一個(gè)完整的?URI?的一部分。?

    如果?encodedURIString?無(wú)效,將產(chǎn)生一個(gè)?URIError。

    要求:版本5.5或以上。


    -------------------
    for...in?語(yǔ)句:對(duì)應(yīng)于一個(gè)對(duì)象的每個(gè),或一個(gè)數(shù)組的每個(gè)元素,執(zhí)行一個(gè)或多個(gè)語(yǔ)句。?

    for?(variable?in?[object?|?array])
    ???statements?

    參數(shù):-variable。必選項(xiàng)。一個(gè)變量,它可以是?object?的任一屬性或?array?的任一元素。?
    ??????-object,?array。可選項(xiàng)。要在其上遍歷的對(duì)象或數(shù)組。
    ??????-statement。可選項(xiàng)。相對(duì)于?object?的每個(gè)屬性或?array?的每個(gè)元素,都要被執(zhí)行的一個(gè)或多個(gè)語(yǔ)句。可以是復(fù)合語(yǔ)句。

    說(shuō)明:在循環(huán)的每次迭代前,variable?被賦予?object?的下一個(gè)屬性或?array?的下一個(gè)元素。然后可以在循環(huán)內(nèi)的任一語(yǔ)句中使用它,就好像正在使用?object?的該屬性或?array?的該元素一樣。

    當(dāng)在一個(gè)對(duì)象上迭代時(shí),沒有辦法決定或控制把對(duì)象的成員賦給?variable?的次序。在數(shù)組內(nèi)將按元素的次序執(zhí)行迭代,也就是,0、1、2、......

    示例:下面示例說(shuō)明了?for?...?in?語(yǔ)句的用法,它把一個(gè)對(duì)象用作一個(gè)聯(lián)合數(shù)組:?
    function?ForInDemo()?{
    ??var?a,?key,?s?=?"";?????????????????????????????????????//?創(chuàng)建某些變量
    ??a?=?{"a"?:?"Athens"?,?"b"?:?"Belgrade",?"c"?:?"Cairo"}??//?初始化對(duì)象
    ??for?(key?in?a)???{??????????????????????????????????????//?迭代屬性
    ?????s?+=?a[key]?+?"<BR/>";
    ??}
    ??return(s);
    }


    -------------------
    join?方法:返回字符串值,其中包含了連接到一起的數(shù)組的所有元素,元素由指定的分隔符分隔開來(lái)。

    arrayObj.join(separator)

    參數(shù):-arrayObj。必選項(xiàng)。Array?對(duì)象。
    ??????-separator。必選項(xiàng)。是一個(gè)?String?對(duì)象,作為最終的?String?對(duì)象中對(duì)數(shù)組元素之間的分隔符。如果省略了這個(gè)參數(shù),那么數(shù)組元素之間就用一個(gè)逗號(hào)來(lái)分隔。

    說(shuō)明:如果數(shù)組中有元素沒有定義或者為?null,將其作為空字符串處理。

    示例:下面這個(gè)例子說(shuō)明了?join?方法的用法。?
    function?JoinDemo()?{
    ??var?a,?b;
    ??a?=?new?Array(0,1,2,3,4);
    ??b?=?a.join("-");
    ??return(b);
    }


    -------------------
    pop?方法:移除數(shù)組中的最后一個(gè)元素并返回該元素。

    arrayObj.pop(?)

    必選的?arrayObj?引用是一個(gè)?Array?對(duì)象。

    說(shuō)明:如果該數(shù)組為空,那么將返回?undefined。

    要求:版本5.5或以上。


    -------------------
    push?方法:將新元素添加到一個(gè)數(shù)組中,并返回?cái)?shù)組的新長(zhǎng)度值。

    arrayObj.push([item1?[item2?[.?.?.?[itemN?]]]])

    參數(shù):-arrayObj。必選項(xiàng)。一個(gè)?Array?對(duì)象。
    ??????-item,?item2,.?.?.?itemN。可選項(xiàng)。該?Array?的新元素。

    說(shuō)明:push?方法將以新元素出現(xiàn)的順序添加這些元素。如果參數(shù)之一為數(shù)組,那么該數(shù)組將作為單個(gè)元素添加到數(shù)組中。如果要合并兩個(gè)或多個(gè)數(shù)組中的元素,請(qǐng)使用?concat?方法。

    要求:版本5.5或以上。


    -------------------
    reverse?方法:返回一個(gè)元素順序被反轉(zhuǎn)的?Array?對(duì)象。?

    arrayObj.reverse(?)

    必選項(xiàng)?arrayObj?參數(shù)為?Array?對(duì)象。

    說(shuō)明:reverse?方法將一個(gè)?Array?對(duì)象中的元素位置進(jìn)行反轉(zhuǎn)。在執(zhí)行過程中,這個(gè)方法并不會(huì)創(chuàng)建一個(gè)新的?Array?對(duì)象。?

    如果數(shù)組是不連續(xù)的,reverse?方法將在數(shù)組中創(chuàng)建元素以便填充數(shù)組中的間隔。這樣所創(chuàng)建的全部元素的值都是?undefined。

    示例:下面這個(gè)例子說(shuō)明了?reverse?方法的用法:?
    function?ReverseDemo()?{
    ??var?a,?l;??????????????????//?聲明變量。
    ??a?=?new?Array(0,1,2,3,4);??//?創(chuàng)建數(shù)組并賦值。
    ??l?=?a.reverse();???????????//?反轉(zhuǎn)數(shù)組的內(nèi)容。
    ??return(l);?????????????????//?返回結(jié)果數(shù)組。
    }


    -------------------
    slice?方法?(Array):返回一個(gè)數(shù)組的一段。

    arrayObj.slice(start,?[end])?

    參數(shù):-arrayObj。必選項(xiàng)。一個(gè)?Array?對(duì)象。?
    ??????-start。必選項(xiàng)。arrayObj?中所指定的部分的開始元素是從零開始計(jì)算的下標(biāo)。?
    ??????-end。可選項(xiàng)。arrayObj?中所指定的部分的結(jié)束元素是從零開始計(jì)算的下標(biāo)。

    說(shuō)明:slice?方法返回一個(gè)?Array?對(duì)象,其中包含了?arrayObj?的指定部分。?

    slice?方法一直復(fù)制到?end?所指定的元素,但是不包括該元素。如果?start?為負(fù),將它作為?length?+?start處理,此處?length?為數(shù)組的長(zhǎng)度。如果?end?為負(fù),就將它作為?length?+?end?處理,此處?length?為數(shù)組的長(zhǎng)度。如果省略?end?,那么?slice?方法將一直復(fù)制到?arrayObj?的結(jié)尾。如果?end?出現(xiàn)在?start?之前,不復(fù)制任何元素到新數(shù)組中。

    示例:在下面這個(gè)例子中,除了最后一個(gè)元素之外,myArray?中所有的元素都被復(fù)制到?newArray?中:?

    newArray?=?myArray.slice(0,?-1)


    -------------------
    shift?方法:移除數(shù)組中的第一個(gè)元素并返回該元素。

    arrayObj.shift(?)

    必選的?arrayObj?引用是一個(gè)?Array?對(duì)象。

    說(shuō)明:shift?方法可移除數(shù)組中的第一個(gè)元素并返回該元素。

    要求:版本5.5或以上。


    -------------------
    unshift?方法:將指定的元素插入數(shù)組開始位置并返回該數(shù)組。

    arrayObj.unshift([item1[,?item2?[,?.?.?.?[,?itemN]]]])

    參數(shù):-arrayObj。必選項(xiàng)。一個(gè)?Array?對(duì)象。
    ??????-item1,?item2,.?.?.,itemN。可選項(xiàng)。將插入到該?Array?開始部分的元素。

    說(shuō)明:unshift?方法將這些元素插入到一個(gè)數(shù)組的開始部分,所以這些元素將以參數(shù)序列中的次序出現(xiàn)在數(shù)組中。

    要求:版本5.5或以上。


    -------------------
    splice?方法:從一個(gè)數(shù)組中移除一個(gè)或多個(gè)元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。

    arrayObj.splice(start,?deleteCount,?[item1[,?item2[,?.?.?.?[,itemN]]]])

    參數(shù):-arrayObj。必選項(xiàng)。一個(gè)?Array?對(duì)象。
    ??????-start。必選項(xiàng)。指定從數(shù)組中移除元素的開始位置,這個(gè)位置是從?0?開始計(jì)算的。
    ??????-deleteCount。必選項(xiàng)。要移除的元素的個(gè)數(shù)。
    ??????-item1,?item2,.?.?.,itemN。必選項(xiàng)。要在所移除元素的位置上插入的新元素。

    說(shuō)明:splice?方法可以移除從?start?位置開始的指定個(gè)數(shù)的元素并插入新元素,從而修改?arrayObj。返回值是一個(gè)由所移除的元素組成的新?Array?對(duì)象。

    要求:版本5.5或以上

    posted on 2006-08-30 17:36 二胡 閱讀(210) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产又黄又爽又大的免费视频 | 久草视频免费在线| 爱情岛论坛免费视频| 亚洲国产精品日韩在线| 亚洲三区在线观看无套内射| 日本不卡免费新一二三区| 免费在线视频你懂的| 免费高清国产视频| 亚美影视免费在线观看| 久久精品国产亚洲av天美18| 亚洲a级在线观看| 亚洲大片免费观看| 亚洲今日精彩视频| 亚洲精品高清无码视频| 亚洲精品视频免费| 免费无遮挡无码永久在线观看视频| 国产成人免费高清激情明星| 久久久久国产免费| 免费在线黄色电影| 中国精品一级毛片免费播放| 成年大片免费高清在线看黄| 亚洲A∨精品一区二区三区下载| 亚洲熟妇AV乱码在线观看| 亚洲国产成人综合| 亚洲国产综合在线| 亚洲小说图片视频| 亚洲三级在线视频| 色偷偷亚洲女人天堂观看欧| 亚洲冬月枫中文字幕在线看| 亚洲日本人成中文字幕| 丁香婷婷亚洲六月综合色| 亚洲香蕉久久一区二区| 亚洲日日做天天做日日谢| 亚洲永久在线观看| 亚洲国产aⅴ成人精品无吗| 亚洲经典千人经典日产| 亚洲av乱码一区二区三区按摩| 精品亚洲国产成人av| 国产亚洲精品第一综合| 亚州**色毛片免费观看| 巨胸喷奶水www永久免费|