欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

對(duì)象的類型:本地對(duì)象(1)

 更新時(shí)間:2006年12月29日 00:00:00   作者:  
在ECMAScript中,所有對(duì)象并非同等創(chuàng)建的。一般說來,可以創(chuàng)建并使用的對(duì)象有三種。

3.3.1 本地對(duì)象

ECMA-262把本地對(duì)象(native object)定義為“獨(dú)立于宿主環(huán)境的ECMAScript實(shí)現(xiàn)提供的對(duì)象”。簡(jiǎn)單說來,本地對(duì)象就是ECMA-262定義的類(引用類型)。它們包括:
你已經(jīng)從上一章了解了一些本地對(duì)象(Object、Function、String、Boolean和Number),本書后面的章節(jié)中還會(huì)討論一些本地對(duì)象?,F(xiàn)在要討論的兩種重要的本地對(duì)象是Array和Date。
1. Array
與Java不同的是,在ECMAScript中有真正的Array類??梢匀缦聞?chuàng)建Array對(duì)象:
如果預(yù)先知道數(shù)組中項(xiàng)的個(gè)數(shù),可以用參數(shù)傳遞數(shù)組的大小:
使用這兩個(gè)方法,一點(diǎn)要使用括號(hào),與它們?cè)贘ava中的用法相似:
這里創(chuàng)建了一個(gè)數(shù)組,并定義了三個(gè)數(shù)組項(xiàng),即"red"、"green"和"blue"。每增加一個(gè)數(shù)組項(xiàng),數(shù)組的大小就動(dòng)態(tài)地增長(zhǎng)。
此外,如果知道數(shù)組應(yīng)該存放的值,還可用參數(shù)聲明這些值,創(chuàng)建大小與參數(shù)個(gè)數(shù)相等的Array對(duì)象。例如,下面的代碼將創(chuàng)建一個(gè)有三個(gè)字符串的數(shù)組:
與字符串類似,數(shù)組中的第一個(gè)項(xiàng)位于位置0,第二個(gè)項(xiàng)位于位置1,依此類推。可通過使用方括號(hào)中放置要讀取的項(xiàng)的位置來訪問特定的項(xiàng)。例如,要用剛才定義的數(shù)組輸出字符串"green",可以采用下面的代碼:
可用屬性length得到數(shù)組的大小。與字符串的length屬性一樣,數(shù)組的length屬性也是最后一個(gè)項(xiàng)的位置加1,意味著具有三個(gè)項(xiàng)的數(shù)組中的項(xiàng)的位置是從0到2。
前面提過,數(shù)組可以根據(jù)需要增大或減小。因此,如果要為前面定義的數(shù)組增加一項(xiàng),只需把要存放的值放入下一個(gè)未使用的位置即可:
在這段代碼中,下一個(gè)未使用的位置是3,所以值"purple"將被賦予它。增加一項(xiàng)使數(shù)組的大小從3變成了4。但如果把值放在這個(gè)數(shù)組的位置25處會(huì)怎樣呢?ECMAScript將把從3開始到24的所有位置都填上值null,然后在位置25處放上正確的值,并把數(shù)組大小增大為26:
數(shù)組最多可以存放4294967295項(xiàng),這應(yīng)該可滿足大多數(shù)程序設(shè)計(jì)的需要。如果要添加更多的項(xiàng),則會(huì)發(fā)生異常。
還可以用字面量表示定義Array對(duì)象,即使用方括號(hào)([和]),用逗號(hào)分隔值。例如,可以用下面的形式重寫前面的例子:
注意,在這個(gè)例子中,未明確使用Array類。方括號(hào)暗示把其中的值存放在Array對(duì)象中。用這種方式聲明的數(shù)組與用傳統(tǒng)方式聲明的數(shù)組相同。
Array對(duì)象覆蓋了toString()方法和valueOf()方法,返回特殊的字符串。該字符串是通過對(duì)每項(xiàng)調(diào)用toString()方法,然后用逗號(hào)把它們連接在一起構(gòu)成的。例如,對(duì)具有項(xiàng)"red"、"green"和"blue"的數(shù)組調(diào)用toString()方法或valueOf()方法,返回的是字符串"red,green,blue"。
類似的,toLocaleString()方法返回的也是由數(shù)組項(xiàng)構(gòu)成的字符串。唯一的區(qū)別是得到的值是通過調(diào)用每個(gè)數(shù)組項(xiàng)的toLocaleString()方法得到的。許多情況下,該方法返回的值都與toString()方法返回的值相同,也是用逗號(hào)連接字符串。
由于開發(fā)者也可能希望在數(shù)組之外創(chuàng)建這樣的值,所以ECMAScript提供了方法join(),它唯一的用途就是連接字符串值。join()方法只有一個(gè)參數(shù),即數(shù)組項(xiàng)之間使用的字符串。考慮下面的例子:
這里用方法join()創(chuàng)建了三種不同的數(shù)組表示。第一個(gè)join()方法使用逗號(hào),本質(zhì)上與調(diào)用toString()方法或valueOf()方法等價(jià)。第二個(gè)和第三個(gè)join()方法使用不同的字符串,在數(shù)組項(xiàng)之間創(chuàng)建了奇怪的分隔符(可能不怎么有用)。理解的重點(diǎn)在于任何字符串都可以用作分隔符。
此刻也許你想知道,既然Array具有把自己轉(zhuǎn)換成字符串的方法,那么String是否有把自己轉(zhuǎn)換成數(shù)組的方法呢?答案是肯定的。String類的方法split()正用于此。split()方法只有一個(gè)參數(shù)??赡苡凶x者已經(jīng)猜到,該參數(shù)就是被看作數(shù)組項(xiàng)之間的分隔符的字符串。因此,如果有一個(gè)由逗號(hào)分隔的字符串,就可以用下面的代碼把它轉(zhuǎn)換成Array對(duì)象:
如果把空字符串聲明為分隔符,那么split()方法返回的數(shù)組中的每個(gè)項(xiàng)是字符串的字符,例如:
這里,字符串"green"將被轉(zhuǎn)換成字符串?dāng)?shù)組"g"、"r"、"e"、"e"和"n"。如果需要逐個(gè)字符的解析字符串,這種功能非常有用。
Array對(duì)象具有兩個(gè)String類具有的方法,即concat()和slice()方法。concat()方法處理數(shù)組的方式幾乎與它處理字符串的方式完全一樣。參數(shù)將被附加在數(shù)組末尾,返回的函數(shù)值是新的Array對(duì)象(包括原始數(shù)組中的項(xiàng)和新的項(xiàng))。例如:
在這個(gè)例子中,用concat()方法把字符串"yellow"和"purple"加到數(shù)組中。數(shù)組aColors2包括5個(gè)值,而原始數(shù)組aColors仍只有3個(gè)值??赏ㄟ^對(duì)兩個(gè)數(shù)組分別調(diào)用toString()方法證明這一點(diǎn)。

相關(guān)文章

  • 一起來學(xué)習(xí)一下JavaScript的事件流

    一起來學(xué)習(xí)一下JavaScript的事件流

    這篇文章主要為大家詳細(xì)介紹了JavaScript的事件流,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • 詳解JSON.parse和JSON.stringify用法

    詳解JSON.parse和JSON.stringify用法

    本文詳細(xì)講解了JSON.parse和JSON.stringify的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • 深入理解JavaScript系列(19):求值策略(Evaluation strategy)詳解

    深入理解JavaScript系列(19):求值策略(Evaluation strategy)詳解

    這篇文章主要介紹了深入理解JavaScript系列(19):求值策略(Evaluation strategy)詳解,本文講解了一般理論、按值傳遞、按引用傳遞、按共享傳遞(Call by sharing)、按共享傳遞是按值傳遞的特例等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • 淺談Javascript中勻速運(yùn)動(dòng)的停止條件

    淺談Javascript中勻速運(yùn)動(dòng)的停止條件

    這篇文章主要給我們探討了Javascript中勻速運(yùn)動(dòng)的停止條件的原理及其與緩沖運(yùn)動(dòng)的區(qū)別,需要的朋友可以參考下
    2014-12-12
  • 最新評(píng)論