javascript中數組與對象的使用方法區別
數組(array)是按次序排列的一組值。JS其實沒有真正的數組,隻是用對象模擬數組。本質上,數組屬於一種特殊的對象。typeof運算符會返回數組的類型是object。
在javascript中,對象被定義為屬性和值的集合。最直接的表現便是對象字面量:var obj={a:3,b:"hello",c:[1,2,3]}。相比傳統的面向對象的語言,這種方式大大簡化的對象創建。在這種情況下,javascript的對象其實就是一個關聯數組。在javascript中,數組又可以認為是索引數組,即可以用整數來進行索引。數組和對象在這種情況下非常接近。
一、JS聲明對象或數組
JS對象:{ } JS數組:[ ]
對象 var b={m:'123',n:'abc'};alert(b.m);alert(b.n);
一維數組 var a=[1,2,3];alert(a[1]);alert(a.length);
二維數組 var ar = [ [ 'a' , 'b'],[ 4, 5 , 6 , 5 ],[ 7, 8 , 9 ] ];alert(ar[1].length);
對象跟數組結合 var b={m:[{f:'123'},{g:'abc'}],n:[{h:'456'},{u:'098'}]};alert(b.m[0].f);
數組跟對象結合 var b=[{m:'abc',n:'fff'},{x:'123',y:'555'}];alert(b[1].x);
二、數組”(array)和“對象”(object)兩者都可以用來表示數據的集合。
比如數組a=[1,2,3,4],和對象a={0:1,1:2,2:3,3:4},運行alert(a[1])兩種結果是相同的。
這就是說,數據集合既可以用數組表示,也可以用對象表示,那麼我到底該用哪一種呢?
三、數組和對象的使用方法區別:
(1)創建方式不同:
數組表示有序數據的集合,而對象表示無序數據的集合。數組的數據沒有”名稱”(name),對象的數據有”名稱”(name)。
var arr = [11,22,33,44,55]; var obj = { attr1:'01', attr2:'02', attr3:'03', attr4:'04', attr5:'05' }
(2)調用方法不同
對象的屬性可以用點號和中括號(註意中括號內是字符串表達式,要加引號)來引用,而數組的元素使用中括號來引用。
console.dir(arr[1]); console.dir(obj.attr1); console.dir(obj['attr1']);
(3)對象鍵值唯一,數組可以重復
var arr = [11,11,33,44,55]; var obj = { attr1:'01', attr2:'02', attr3:'03', attr4:'04', attr5:'05', attr1:"00" } console.dir(arr); console.dir(obj);
(4)對象沒有長度,不能用for循環
// 對象沒有長度 console.dir(arr.length); // console.dir(obj.length); // undefined for (var i = 0; i <arr.length; i++) { console.dir(arr[i]); }
(5)數組和對象都可以使用for…in 循環
for(var index in arr){ console.dir(index); // 屬性 console.dir(arr[index]); // 值 } for(var attr in obj){ console.dir(attr); // 屬性 console.dir(obj[attr]); // 值 }
到此這篇關於javascript中數組與對象的使用方法區別的文章就介紹到這瞭,更多相關js數組與對象區別內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- js中值類型和引用類型的區別介紹
- 分享JavaScript 類型判斷的幾種方法
- JavaScript判斷是否為數組的各種方法匯總
- 一篇文章弄懂js中的typeof用法
- JavaScript偽數組和數組的使用與區別