caoporm97国产在线视频|欧美性XXXXX精品|一本一道久久a久久精品综合开|精品久久久久久久久久久AⅤ|

十年專注于品牌網(wǎng)站建設(shè) 十余年專注于網(wǎng)站建設(shè)_小程序開發(fā)_APP開發(fā),低調(diào)、敢創(chuàng)新、有情懷!
南昌百恒網(wǎng)絡(luò)微信公眾號(hào) 掃一掃關(guān)注
小程序
tel-icon全國(guó)服務(wù)熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)
掃一掃打開百恒網(wǎng)絡(luò)微信小程序

百恒網(wǎng)絡(luò)

南昌百恒網(wǎng)絡(luò)

詳細(xì)講解JavaScript Array類型概念及使用(二)

百恒網(wǎng)絡(luò) 2012-03-10 4749

創(chuàng)建數(shù)組的第二種基本方式是使用數(shù)組字面量表示法。數(shù)組字面量由一對(duì)包含數(shù)組項(xiàng)的方括號(hào)表示,多個(gè)數(shù)組之間以逗號(hào)隔開,如下所示:

var colors=["red","blue","green"]j //創(chuàng)建一個(gè)包含3個(gè)字符串的數(shù)組

var names=[]; //創(chuàng)建一個(gè)空數(shù)組

var values=[1,2,]; //不要這樣!這樣會(huì)創(chuàng)建一個(gè)包含2或3項(xiàng)的數(shù)組

var options=[,,,,]; //不要這樣!這樣會(huì)創(chuàng)建一個(gè)包含5或6項(xiàng)的數(shù)組

以上代碼的第一行創(chuàng)建了一個(gè)包含3個(gè)字符串的數(shù)組。第二行使用一對(duì)空方括號(hào)創(chuàng)建了一個(gè)空數(shù)組。第三行展示了在數(shù)組字面量的最后一項(xiàng)添加逗號(hào)的結(jié)果:在IE中,values會(huì)成為一個(gè)包含3個(gè)項(xiàng)且每項(xiàng)的值分別為1、2和undefined的數(shù)組;在其他瀏覽器中,values會(huì)成為一個(gè)包含2項(xiàng)且值分別為l和2的數(shù)組。南昌網(wǎng)絡(luò)公司做網(wǎng)站公司提醒廣開發(fā)人員,出現(xiàn)這種情況的主原因是IE的ECMAScript實(shí)現(xiàn)在數(shù)組字面量方面存在bug。由于這個(gè)bug導(dǎo)致的另一種情況如最后一行代碼所示,該行代碼可能會(huì)創(chuàng)建包含5項(xiàng)的數(shù)組(在Firefox. Opera. Safari和Chrome中),也可能會(huì)創(chuàng)建包含6項(xiàng)的數(shù)組(在IE中)。在像這種省略值的情況下,每一項(xiàng)都將獲得undefined值;這個(gè)結(jié)果與調(diào)用Array構(gòu)造函數(shù)時(shí)傳遞項(xiàng)數(shù)在邏輯土是相同的。但是由于IE的實(shí)現(xiàn)與其他瀏覽器不一致,因此我們強(qiáng)烈建議不要使用這種語(yǔ)法。

與對(duì)象一樣,在使用數(shù)組字面量表示法時(shí),也不會(huì)調(diào)用Array構(gòu)造函數(shù)(Firefox除外)。

在讀取和設(shè)置數(shù)組的值時(shí),要使用方括號(hào)并提供相應(yīng)值的基于0的數(shù)字索引,如下所示:

var colors=["red","blue","green"]; //定義一個(gè)字符串?dāng)?shù)組

alert (colors[O]); //顯示第一項(xiàng)

colors [2]="black"; //修改第三項(xiàng)

colors[3]="brown"; //新增第四項(xiàng)

方括號(hào)中的索引表示要訪問的值。南昌建網(wǎng)站公司工程師提示,如果索引小于數(shù)組中的項(xiàng)數(shù),則返回對(duì)應(yīng)項(xiàng)的值,就像這個(gè)例子中的colors[o]會(huì)顯示"red"一樣。設(shè)置數(shù)組的值也使用相同的語(yǔ)法,但會(huì)替換指定位置的值。如果設(shè)置某個(gè)值的索引超過了數(shù)組現(xiàn)有項(xiàng)數(shù),如這個(gè)例子中的colors[3]所示,數(shù)組就會(huì)自動(dòng)增加到該索引值加l的長(zhǎng)度(就這個(gè)例子而言,索引是3,因此數(shù)組長(zhǎng)度就是4)。

數(shù)組的項(xiàng)數(shù)保存在其length屬性中,這個(gè)屬性始終會(huì)返回0或更大的值,如下面這個(gè)例子所示:

var colors=["red","blue","green"]; //創(chuàng)建一個(gè)包含3個(gè)字符串的數(shù)組

var names=[]; //創(chuàng)建一個(gè)空數(shù)組

alert(colors.length); //3

alert(names.length); //0

數(shù)組的length屬性很有特點(diǎn)——它不是只讀的。因此,通過設(shè)置這個(gè)屬性,可以從數(shù)組的末尾移除項(xiàng)或向數(shù)組中添加新項(xiàng)。請(qǐng)看下面的例子:

var colors=["red","blue","green"]; //創(chuàng)建一個(gè)包含3個(gè)字符串的數(shù)組

colors.length = 2;

alert(colors(2)); //undefined

這個(gè)例子中的數(shù)組colors -開始有3個(gè)值。將其length屬性設(shè)置為2會(huì)移除最后一項(xiàng)(位置為2的那一項(xiàng)),結(jié)果再訪問colors[2]就會(huì)顯示unde fined了。如果將其length屬性設(shè)置為大于數(shù)組項(xiàng)數(shù)的值,則新增的每一項(xiàng)都會(huì)取得undefined值,如下所示:

var colors=["red","blue","green"]; //創(chuàng)建一個(gè)亂會(huì)3個(gè)字符串的數(shù)組

colors.length = 4;

alert(colors(3)); //undefined

在此南昌網(wǎng)頁(yè)設(shè)計(jì)公司工程師提示,雖然colors數(shù)組包含3個(gè)項(xiàng),但把它的length屬性設(shè)置成了4。于是,這個(gè)數(shù)組中位置為3的那一項(xiàng)就獲得了unde fined值,數(shù)組的項(xiàng)數(shù)也增加到4。 利用length屬性也可以方便地在數(shù)組末尾添加新項(xiàng),如下所示:

var colors=["red","blue","green"]; //創(chuàng)建一個(gè)包含3個(gè)字符串的數(shù)組

colors[colors.length] = "black"; //(在位置3)添加一種顏色

colors[colors.length] = "brown"; //(在位置4)添加一種顏色

由于數(shù)組最后一項(xiàng)的索引始終是length-l,因此下一個(gè)新項(xiàng)的位置就是length。每當(dāng)在數(shù)組末尾添加一項(xiàng)后,其length屬性都會(huì)自動(dòng)更新以反應(yīng)這一變化。換句話說(shuō),上面例子第二行中的 colors[colors .length]為位置3添加了一個(gè)值,最后一行的colors[ colors .length]則為位置4添加了一個(gè)值。當(dāng)把一個(gè)值放在超出當(dāng)前數(shù)組大小的位置上時(shí),數(shù)組就會(huì)重新計(jì)算其長(zhǎng)度值,即長(zhǎng)度值等于最后一項(xiàng)的索引加l,如下面的例子所示:

var colors=["red","blue","areen"]; //創(chuàng)建一個(gè)包含3個(gè)字符串的數(shù)組

colors[99] = "black"; //(在位置99)添加一種顏色

alert(colors.length); //100

在這個(gè)例子中,我們向colors數(shù)組的位置99插入了一個(gè)值,結(jié)果數(shù)組新長(zhǎng)度(length)就是100 (99+1)。而從位置3到位置98的每一項(xiàng),都將獲得undefined值。

南昌網(wǎng)站建設(shè)公司百恒網(wǎng)絡(luò)前端開發(fā)工程師提示,數(shù)組最多可以包含4294967295個(gè)項(xiàng),這幾乎已經(jīng)能夠滿足任何編程需求了,如果想添加的項(xiàng)數(shù)超過這個(gè)上限值,就會(huì)發(fā)生異常.而創(chuàng)建一個(gè)初始大小與這個(gè)上限值接近的數(shù)組,則可能會(huì)導(dǎo)致運(yùn)行時(shí)間超長(zhǎng)的腳本錯(cuò)誤.

希望本文對(duì)廣大站長(zhǎng)或從事企業(yè)網(wǎng)站建設(shè)公司的團(tuán)隊(duì)有所幫助,如對(duì)此不太理解的,可以與南昌做網(wǎng)站公司百恒網(wǎng)絡(luò)技術(shù)部聯(lián)系。我們很高興與廣大站長(zhǎng)和從事企業(yè)網(wǎng)站建設(shè)公司技術(shù)人員分享我們的技術(shù)和經(jīng)驗(yàn)。


400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)
掃一掃打開百恒網(wǎng)絡(luò)小程序

歡迎您的光顧,我們將竭誠(chéng)為您服務(wù)×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務(wù) 售后服務(wù)
 
售后服務(wù) 售后服務(wù)
 
備案專線 備案專線
 
×