亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

淺談Javascript數組的使用

2024-05-06 16:23:59
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了淺談Javascript數組的使用的相關資料,包括數組的大小,數組的遍歷以及數組的一些方法,非常細致,需要的朋友可以參考下

上一篇說了數組的索引,這一篇說下數組的使用。

數組的大小

js的數組可以動態調整大小,更確切點說,它沒有數組越界的概念,a[a.length]沒什么問題。比如聲明一個數組a = [1, 3, 5],現在的數組大小是3,最后一個元素的索引是2,但是你依然可以使用a[3],訪問a[3]返回的是undefined,給a[3]賦值:a[3] = 7,是給數組a添加了一個元素,現在數組a的長度是4了。你可以試試把下面這段代碼放到瀏覽器里運行下:


var a = [];
for(int i = 0; i <= a.length; i++)
{
a[a.length] = i;
}
在我的電腦上,火狐會立馬崩掉,chrome這一個標簽cpu占用99%(使用chrome的任務管理器查看的)。

js的length的值會隨著數組元素的改變而改變,當然你也可以手動設置數組的 length 屬性,設置更大的length不會給數組分配更多的空間,但是設置更小的length則會導致所有下標大于等于新length的屬性被刪除。

另外有一點就是,數組的length值是怎么來的,有的資料說是最大一個數字索引值加一,應該是對的,不過如果把空槽也算數的話,length值就是數組的元素數。上張圖解釋下:



從圖里可以看到,有個數組a,a[0]和a[10]都已賦值,這時候a的length是11,中間有9個empty slot(姑且就翻譯為空槽好了)。那這九個空槽算不算數呢,我覺得應該算,這樣就能合理的解釋length值了。那這些空槽的值是什么呢?undefined!所以呢,如果在chrome里,使用foreach遍歷(forin),那么這些空槽正好都能跳過,而使用for遍歷,則會打印出undefined。至于在firefox里,表現不太一樣,自己試吧。

數組的遍歷

昨天在看微博上轉的js教程的時候,里面說在遍歷數組的時候,判斷語句i

關于數組的foreach遍歷,js的方式相對于java/c#等語言是很奇怪的:




for(var name in ['huey', 'dewey', 'louie']) {
console.log(name);
}
/*
打印結果:
0
1
2
*/
可以看到,打印的結果不是數組的元素,而是數字索引值(感覺這好像也可以說明,js的數組也是用hash的方式存儲的),不管怎樣,這一點要注意。(至于為什么這樣,我覺得數組元素都是數組的屬性,這個遍歷是遍歷的length值,從0到length。而不是逐個輸出數組的元素,因為元素是屬性,數組又不只數字索引這一種屬性,那么為什么這樣遍歷的時候只輸出它們呢,而不是length,push,join等方法?公平起見,只好輸出數組的數字索引了。當然,這只是我自己的看法,具體怎么樣我沒研究。)

數組的一些方法

數組有push和pop方法,這樣數組就像堆棧一樣了。對數組使用delete,可以將數組中某個元素移除,但是那樣會在數組中留下一個空洞(也就是說delete也可以刪除數組中的元素,但是只是刪除該位置的值,不改變數組大小,原位置類型是undefined),這是因為排在被刪除元素之后的元素保留著它們最初的屬性,所以應該使用splice對進行過delete操作的數組進行瘦身,它會將被刪除的屬性移除,但這樣效率并不是很高。數組中還有map、reduce、filter等方法,這里就不多說了(跟python中的list挺像的)。

補充

最后補充一點,我前面說過,js中的數組就是對象(廢話,本來就是對象),那么是不是說,數組和對象可以互相互替換著用呢?答案是可以的。不過為了明確,還是分開用比較好,下面說下什么時候該用數組,什么時候該用對象(參考《javascript語言精粹》):

當屬性名是小而連續的整數時,應該使用數組,否則,使用對象。

另外由于js中對數組和對象使用 typeof 的結果都是 Object,因此判斷一個對象是否為數組的方法:




var is_array = function(value) {
return Object.prototype.toString.apply(value) === '[object Array]';
};
番外

覺得閉包被神化了,可能語言層面上的實現有技術,但是在應用層面我覺得就應該那樣啊,使用的時候都感覺不到那是在用閉包。但是這個閉包卻幾乎成了面試前端必問的概念了。

以上所述就是本文的全部內容了,希望大家能夠喜歡。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
韩剧1988免费观看全集| 国产女人精品视频| 欧美亚洲伦理www| 亚洲精品资源在线| 成人国产亚洲精品a区天堂华泰| 久久精品电影网| 正在播放欧美视频| 久久99精品久久久久久噜噜| 91社影院在线观看| 日韩高清中文字幕| 亚洲自拍高清视频网站| 中文一区二区视频| 国产日韩精品在线观看| 亚洲成av人片在线观看香蕉| 亚洲日本成人网| 久久久久国产精品www| 亚洲欧美制服丝袜| 2018国产精品视频| 91成人免费观看网站| 欧美视频专区一二在线观看| 欧美精品免费在线观看| 欧美性xxxxx极品娇小| 国产精品普通话| 国产欧美日韩中文字幕| 午夜精品一区二区三区在线| 69国产精品成人在线播放| 日韩电影中文字幕| 亚洲色图25p| 国产一区二区三区中文| 国产精品中文久久久久久久| 国产精品久久久久久一区二区| 国产99久久精品一区二区 夜夜躁日日躁| 欧美影院成年免费版| 日韩www在线| 91精品国产高清久久久久久久久| 日韩福利伦理影院免费| 精品国产成人在线| 国产精品观看在线亚洲人成网| 欧美激情videoshd| 岛国av一区二区| 欧美日韩国产精品专区| 国产综合在线视频| 中文字幕亚洲一区二区三区五十路| 日韩美女主播视频| 992tv成人免费影院| 日韩欧亚中文在线| 国产日韩精品视频| 在线a欧美视频| 日韩视频在线免费观看| 欧美一级电影免费在线观看| 亚洲成色www8888| 国产精品网站大全| 亚洲伊人成综合成人网| 久久精品国产一区二区三区| 国产精品男人爽免费视频1| 日本高清不卡的在线| 日韩中文字幕在线视频播放| 日韩网站免费观看高清| 久青草国产97香蕉在线视频| 亚洲精品乱码久久久久久按摩观| 国产日韩欧美中文在线播放| 国产亚洲成av人片在线观看桃| 亚洲国产精品久久久久秋霞不卡| 国产成+人+综合+亚洲欧洲| 26uuu另类亚洲欧美日本老年| 精品久久香蕉国产线看观看亚洲| 日韩精品在线视频观看| 国产精品日韩欧美| 国产精品视频久久久久| 国产精品视频99| 欧美与黑人午夜性猛交久久久| 亚洲精品黄网在线观看| 亚洲激情在线观看| 91亚洲国产成人久久精品网站| 日韩经典一区二区三区| 欧美日本中文字幕| 久久亚洲精品国产亚洲老地址| 97久久精品人人澡人人爽缅北| 91产国在线观看动作片喷水| 51ⅴ精品国产91久久久久久| 欧美xxxx18性欧美| 欧美成人三级视频网站| 亚洲欧洲国产精品| 欧美激情第6页| 4438全国成人免费| 日韩精品免费在线视频| 久久久亚洲国产天美传媒修理工| www.99久久热国产日韩欧美.com| 国产精品96久久久久久又黄又硬| 国产欧美日韩91| 国产精品69久久久久| 91黑丝在线观看| 欧美日韩成人黄色| 国产婷婷97碰碰久久人人蜜臀| 国产精品第一区| 日韩免费精品视频| 蜜臀久久99精品久久久久久宅男| 日韩中文字幕在线观看| 国产69久久精品成人看| 国产精品草莓在线免费观看| 亚洲欧美日韩国产精品| 日韩av在线免费观看| 亚洲国产精品国自产拍av秋霞| 成人中文字幕在线观看| 亚洲摸下面视频| 4444欧美成人kkkk| 国产亚洲a∨片在线观看| 欧美高跟鞋交xxxxhd| 国产精品入口免费视频一| 日韩一区二区欧美| 亚洲精品日韩丝袜精品| 亚洲图片在线综合| 91精品国产自产91精品| 国产福利视频一区二区| 久久久人成影片一区二区三区观看| 亚洲乱码一区二区| 欧美一区在线直播| 狠狠躁夜夜躁人人爽天天天天97| 国产精品一区二区久久精品| 4438全国成人免费| 国产成人一区二区三区小说| 91国产美女在线观看| 亚洲级视频在线观看免费1级| 欧美性xxxxx极品娇小| 亚洲精品电影网在线观看| 中文字幕日韩av综合精品| 91禁外国网站| 久久影视免费观看| 欧美中文字幕第一页| 在线视频中文亚洲| 欧美性高潮床叫视频| 日韩精品丝袜在线| 欧美成人国产va精品日本一级| 精品人伦一区二区三区蜜桃网站| 91社区国产高清| 美女av一区二区| 国产免费亚洲高清| 色偷偷av一区二区三区| 亚洲欧美制服综合另类| 久久在线精品视频| 26uuu另类亚洲欧美日本老年| 国产精品丝袜视频| 26uuu久久噜噜噜噜| 成人国产精品久久久| 欧美视频在线观看免费| 精品成人在线视频| 国产欧美日韩精品丝袜高跟鞋| 亚洲精品二三区| 欧洲美女7788成人免费视频| 国产在线98福利播放视频| 欧美成人免费网| 国产精品日韩电影| 亚洲网站视频福利| 91手机视频在线观看| 另类专区欧美制服同性| 九九久久久久99精品| 日av在线播放中文不卡| 久久免费视频网站| 久久精品成人一区二区三区| yw.139尤物在线精品视频| 久久成人人人人精品欧| 日韩精品在线免费观看视频| 精品少妇一区二区30p| www.欧美精品一二三区|