數(shù)組,即Array類型,是開發(fā)中最常用的類型之一。這篇文章主要介紹了淺談Javascript數(shù)組的相關(guān)資料,需要的朋友可以參考下
在程序語言中數(shù)組的重要性不言而喻,JavaScript中數(shù)組也是最常使用的對象之一,數(shù)組是值的有序集合,由于弱類型的原因,JavaScript中數(shù)組十分靈活、強大,不像是Java等強類型高級語言數(shù)組只能存放同一類型或其子類型元素,JavaScript在同一個數(shù)組中可以存放多種類型的元素,而且是長度也是可以動態(tài)調(diào)整的,可以隨著數(shù)據(jù)增加或減少自動對數(shù)組長度做更改。
首先,大概說說數(shù)組的基本用法。
數(shù)組,即Array類型,是開發(fā)中最常用的類型之一,javascript中的數(shù)組和其他語言最大的區(qū)別就是每一項可以保存任何類型的數(shù)據(jù),而且數(shù)組的大小是可以動態(tài)調(diào)整的,有點繞?看看代碼吧
1.數(shù)組的創(chuàng)建:
var arr=new Array(20);
var arr1=["小傘",1,true,undefined,[2,"王"],""]
第一行用數(shù)組構(gòu)造法創(chuàng)建了一個length值為20的數(shù)組,第二行用數(shù)組字面量表示法創(chuàng)建了一個多種數(shù)據(jù)類型并存的數(shù)組。
第一行的方法有點小坑,括號里指定的是數(shù)組的長度,而不是數(shù)組第一個元素是20 ,要想創(chuàng)建有一個元素是20的這么一個數(shù)組,還是用字面量法創(chuàng)建吧。
還有一個小坑,看代碼
var arr=[1,2,];
var arr1=[,,,,,]
第一行這句會在IE8以及之前版本中創(chuàng)建一個值分別為1,2,undefined的數(shù)組,其他瀏覽器會產(chǎn)生一個兩項分別是1,2的數(shù)組
第二行同樣的可能會在不同瀏覽器上包含5項或者6項。(IE9以上修復了這個問題,但還是不推薦這種寫法)
2.數(shù)組元素的基本操作
js的數(shù)組非常的靈活,擁有很多數(shù)組元素操作的方法,但也有一些小坑,比如:
var arr=[];
arr[0]=1;arr[1]=2;arr.push(3); //arr=[1,2,3]arr[arr.length]=4; //arr=[1,2,3,4]arr.unshift(0); //arr=[0,1,2,3,4];delect arr[2]; //arr=[0,1,undefined,3,4]arr[0]=undefined //arr=[undefined,1,undefined,3,4]
push()方法會給數(shù)組最后邊添加一個元素,得到的值可以看注釋,^_^
也可以直接手動在數(shù)組下標拓展以為,如第三行,其實就相當于push(4);
那如果想在數(shù)組元素最前邊添加呢,別急,有unshift()方法。
與此對應(yīng)的有刪除元素的pop()方法和shift()方法,分別和push(),unshift()對應(yīng),就不再贅述了。
delect 運算符對數(shù)組的操作不會刪除掉數(shù)組的元素,可以說是用undefined來占個位子,和直接賦值是一樣的。
3.稀疏數(shù)組
稀疏數(shù)組是指數(shù)組的下標并不是從0開始,一般數(shù)組的長度要比元素的個數(shù)要多:
var arr1=[undefined];
var arr2=new Array(1);
0 in arr1; //true
0 in arr2; //false
var arr3=new Array(100);
arr3[99]="賦值";
99 in arr3; //true
98 in arr3; //false
arr1中是因為數(shù)組第1列是有值的,雖然是undefined,arr2只是指定了數(shù)組長度,第1列還是沒有值,所以用in語句會返回false。arr3中給第第100個元素賦值后檢測是有值的,對其他列的key是沒有影響的,所以還是返回了false。
以上所述是小編給大家介紹的Javascript數(shù)組的相關(guān)知識,希望對大家有所幫助