javascript中數(shù)組與對(duì)象的使用方法區(qū)別
數(shù)組(array)是按次序排列的一組值。JS其實(shí)沒(méi)有真正的數(shù)組,只是用對(duì)象模擬數(shù)組。本質(zhì)上,數(shù)組屬于一種特殊的對(duì)象。typeof運(yùn)算符會(huì)返回?cái)?shù)組的類(lèi)型是object。
在javascript中,對(duì)象被定義為屬性和值的集合。最直接的表現(xiàn)便是對(duì)象字面量:var obj={a:3,b:"hello",c:[1,2,3]}。相比傳統(tǒng)的面向?qū)ο蟮恼Z(yǔ)言,這種方式大大簡(jiǎn)化的對(duì)象創(chuàng)建。在這種情況下,javascript的對(duì)象其實(shí)就是一個(gè)關(guān)聯(lián)數(shù)組。在javascript中,數(shù)組又可以認(rèn)為是索引數(shù)組,即可以用整數(shù)來(lái)進(jìn)行索引。數(shù)組和對(duì)象在這種情況下非常接近。
一、JS聲明對(duì)象或數(shù)組
JS對(duì)象:{ } JS數(shù)組:[ ]
對(duì)象 var b={m:'123',n:'abc'};alert(b.m);alert(b.n);
一維數(shù)組 var a=[1,2,3];alert(a[1]);alert(a.length);
二維數(shù)組 var ar = [ [ 'a' , 'b'],[ 4, 5 , 6 , 5 ],[ 7, 8 , 9 ] ];alert(ar[1].length);
對(duì)象跟數(shù)組結(jié)合 var b={m:[{f:'123'},{g:'abc'}],n:[{h:'456'},{u:'098'}]};alert(b.m[0].f);
數(shù)組跟對(duì)象結(jié)合 var b=[{m:'abc',n:'fff'},{x:'123',y:'555'}];alert(b[1].x);
二、數(shù)組”(array)和“對(duì)象”(object)兩者都可以用來(lái)表示數(shù)據(jù)的集合。
比如數(shù)組a=[1,2,3,4],和對(duì)象a={0:1,1:2,2:3,3:4},運(yùn)行alert(a[1])兩種結(jié)果是相同的。
這就是說(shuō),數(shù)據(jù)集合既可以用數(shù)組表示,也可以用對(duì)象表示,那么我到底該用哪一種呢?
三、數(shù)組和對(duì)象的使用方法區(qū)別:
(1)創(chuàng)建方式不同:
數(shù)組表示有序數(shù)據(jù)的集合,而對(duì)象表示無(wú)序數(shù)據(jù)的集合。數(shù)組的數(shù)據(jù)沒(méi)有”名稱(chēng)”(name),對(duì)象的數(shù)據(jù)有”名稱(chēng)”(name)。
var arr = [11,22,33,44,55]; var obj = { attr1:'01', attr2:'02', attr3:'03', attr4:'04', attr5:'05' }
(2)調(diào)用方法不同
對(duì)象的屬性可以用點(diǎn)號(hào)和中括號(hào)(注意中括號(hào)內(nèi)是字符串表達(dá)式,要加引號(hào))來(lái)引用,而數(shù)組的元素使用中括號(hào)來(lái)引用。
console.dir(arr[1]); console.dir(obj.attr1); console.dir(obj['attr1']);
(3)對(duì)象鍵值唯一,數(shù)組可以重復(fù)
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)對(duì)象沒(méi)有長(zhǎng)度,不能用for循環(huán)
// 對(duì)象沒(méi)有長(zhǎng)度 console.dir(arr.length); // console.dir(obj.length); // undefined for (var i = 0; i <arr.length; i++) { console.dir(arr[i]); }
(5)數(shù)組和對(duì)象都可以使用for...in 循環(huán)
for(var index in arr){ console.dir(index); // 屬性 console.dir(arr[index]); // 值 } for(var attr in obj){ console.dir(attr); // 屬性 console.dir(obj[attr]); // 值 }
到此這篇關(guān)于javascript中數(shù)組與對(duì)象的使用方法區(qū)別的文章就介紹到這了,更多相關(guān)js數(shù)組與對(duì)象區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
@ResponseBody 和 @RequestBody 注解的區(qū)別
這篇文章主要介紹了@ResponseBody 和 @RequestBody 注解的區(qū)別的相關(guān)資料,需要的朋友可以參考下2017-03-03javascript 彈出的窗口返回值給父窗口具體實(shí)現(xiàn)
這篇文章主要介紹了javascript 彈出的窗口返回值給父窗口具體實(shí)現(xiàn),有需要的朋友可以參考一下2013-11-11Bootstrap select實(shí)現(xiàn)下拉框多選效果
這篇文章主要為大家詳細(xì)介紹了Bootstrap select實(shí)現(xiàn)下拉框多選效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12微信小程序?qū)崿F(xiàn)橫向滾動(dòng)導(dǎo)航欄效果
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)橫向滾動(dòng)導(dǎo)航欄效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12復(fù)選框全選與全不選操作實(shí)現(xiàn)思路
通過(guò)js簡(jiǎn)單實(shí)現(xiàn)下復(fù)選框全選與全不選,很常用的一個(gè)操作,具體實(shí)現(xiàn)思路及代碼如下,有需求的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08