JavaScript 數(shù)組

1.定義

數(shù)組(array)是按次序排列的一組值。每個值的位置都有編號(從0開始)郎笆,整個數(shù)組用方括號表示。

var arr = ['a', 'b', 'c'];

上面代碼中的a忘晤、b宛蚓、c就構(gòu)成一個數(shù)組,兩端的方括號是數(shù)組的標(biāo)志设塔。a是0號位置凄吏,b是1號位置,c是2號位置。除了在定義時賦值痕钢,數(shù)組也可以先定義后賦值图柏。

var arr = [];
arr[0] = 'a';
arr[1] = 'b';
arr[2] = 'c';

任何類型的數(shù)據(jù),都可以放入數(shù)組任连。

var arr = [
  {a: 1},
  [1, 2, 3],
  function() {return true;}
];

arr[0] // Object {a: 1}
arr[1] // [1, 2, 3]
arr[2] // function (){return true;}

上面數(shù)組arr的3個成員依次是對象蚤吹、數(shù)組、函數(shù)课梳。如果數(shù)組的元素還是數(shù)組距辆,就形成了多維數(shù)組。

var a = [[1, 2], [3, 4]];
a[0][1] // 2
a[1][1] // 4

2.數(shù)組的本質(zhì)

本質(zhì)上暮刃,數(shù)組屬于一種特殊的對象。typeof運(yùn)算符會返回數(shù)組的類型是object爆土。

typeof [1, 2, 3] // "object"

上面代碼表明椭懊,typeof運(yùn)算符認(rèn)為數(shù)組的類型就是對象。數(shù)組的特殊性體現(xiàn)在步势,它的鍵名是按次序排列的一組整數(shù)(0氧猬,1,2...)坏瘩。

var arr = ['a', 'b', 'c'];
Object.keys(arr)
// ["0", "1", "2"]

上面代碼中盅抚,Object.keys方法返回數(shù)組的所有鍵名【蠓可以看到數(shù)組的鍵名就是整數(shù)0妄均、1、2哪自。由于數(shù)組成員的鍵名是固定的(默認(rèn)總是0丰包、1、2...)壤巷,因此數(shù)組不用為每個元素指定鍵名邑彪,而對象的每個成員都必須指定鍵名。JavaScript 語言規(guī)定胧华,對象的鍵名一律為字符串寄症,所以,數(shù)組的鍵名其實(shí)也是字符串矩动。之所以可以用數(shù)值讀取有巧,是因?yàn)榉亲址逆I名會被轉(zhuǎn)為字符串。

var arr = ['a', 'b', 'c'];
arr['0'] // 'a'
arr[0] // 'a'

上面代碼分別用數(shù)值和字符串作為鍵名铅忿,結(jié)果都能讀取數(shù)組剪决。原因是數(shù)值鍵名被自動轉(zhuǎn)為了字符串。注意,這點(diǎn)在賦值時也成立柑潦。如果一個值總是先轉(zhuǎn)成字符串享言,再進(jìn)行賦值。

var a = [];
a[1.00] = 6;
a[1] // 6

那key也可以是其他字符串渗鬼,不一定是數(shù)字览露,如:


數(shù)組的下標(biāo)(key)不一定是數(shù)字

不過length就是0,所以一般我們都用數(shù)組默認(rèn)的數(shù)字key譬胎,而不會自己去定義key


自定義key導(dǎo)致length失效

3.length 屬性

數(shù)組的length屬性差牛,返回數(shù)組的成員數(shù)量。

['a', 'b', 'c'].length // 3

JavaScript 使用一個32位整數(shù)堰乔,保存數(shù)組的元素個數(shù)偏化。這意味著,數(shù)組成員最多只有 4294967295 個(232 - 1)個镐侯,也就是說length屬性的最大值就是 4294967295侦讨。只要是數(shù)組,就一定有l(wèi)ength屬性苟翻。該屬性是一個動態(tài)的值韵卤,等于鍵名中的最大整數(shù)加上1。

var arr = ['a', 'b'];
arr.length // 2

arr[2] = 'c';
arr.length // 3

arr[9] = 'd';
arr.length // 10

arr[1000] = 'e';
arr.length // 1001

上面代碼表示崇猫,數(shù)組的數(shù)字鍵不需要連續(xù)沈条,length屬性的值總是比最大的那個整數(shù)鍵大1。另外诅炉,這也表明數(shù)組是一種動態(tài)的數(shù)據(jù)結(jié)構(gòu)蜡歹,可以隨時增減數(shù)組的成員。length屬性是可寫的汞扎。如果人為設(shè)置一個小于當(dāng)前成員個數(shù)的值季稳,該數(shù)組的成員會自動減少到length設(shè)置的值。

var arr = [ 'a', 'b', 'c' ];
arr.length // 3

arr.length = 2;
arr // ["a", "b"]

上面代碼表示澈魄,當(dāng)數(shù)組的length屬性設(shè)為2(即最大的整數(shù)鍵只能是1)那么整數(shù)鍵2(值為c)就已經(jīng)不在數(shù)組中了景鼠,被自動刪除了。清空數(shù)組的一個有效方法痹扇,就是將length屬性設(shè)為0铛漓。

摘自:JavaScript 教程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市鲫构,隨后出現(xiàn)的幾起案子浓恶,更是在濱河造成了極大的恐慌,老刑警劉巖结笨,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件包晰,死亡現(xiàn)場離奇詭異湿镀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)伐憾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門勉痴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人树肃,你說我怎么就攤上這事蒸矛。” “怎么了胸嘴?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵雏掠,是天一觀的道長。 經(jīng)常有香客問我劣像,道長乡话,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任耳奕,我火速辦了婚禮蚊伞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吮铭。我一直安慰自己,他們只是感情好颅停,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布谓晌。 她就那樣靜靜地躺著,像睡著了一般癞揉。 火紅的嫁衣襯著肌膚如雪纸肉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天喊熟,我揣著相機(jī)與錄音柏肪,去河邊找鬼。 笑死芥牌,一個胖子當(dāng)著我的面吹牛烦味,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播壁拉,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼谬俄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了弃理?” 一聲冷哼從身側(cè)響起溃论,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎痘昌,沒想到半個月后钥勋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體炬转,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年算灸,在試婚紗的時候發(fā)現(xiàn)自己被綠了扼劈。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡乎婿,死狀恐怖测僵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谢翎,我是刑警寧澤捍靠,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站森逮,受9級特大地震影響榨婆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜褒侧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一良风、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧闷供,春花似錦烟央、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至婿失,卻和暖如春钞艇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背豪硅。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工哩照, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人懒浮。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓飘弧,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嵌溢。 傳聞我的和親對象是個殘疾皇子眯牧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,150評論 0 13
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,237評論 0 4
  • 夏浮和尚沉是公認(rèn)的couple赖草。 原因很簡單学少,聽名字啊 。且經(jīng)非官方鑒定他倆沒任何血緣關(guān)系秧骑。 “當(dāng)物體的密度大于液...
    何以為陸閱讀 182評論 0 0
  • 秋天的涼夜版确,獨(dú)坐在床邊扣囊,看熾白的光射滿這三十平米大的房間,射在右手邊榆木色的方正書桌上绒疗,微微散著暖氣侵歇,剛好驅(qū)除了從...
    木易不易丁閱讀 243評論 0 4
  • 曼谷大皇宮——金碧輝煌的宮殿廟宇,鳥語花香的皇家庭院吓蘑,嘆為觀止的壁畫惕虑,以及涌動的人群和灼熱的陽光。 四面佛——聽說...
    熠一插畫閱讀 293評論 0 0