陣列 (Array) 是"一組"同類型的變數,意即宣告一個變數,但裡面可以放很多個值。
「深入淺出 JavaScript 」一書中將陣列比喻為儲物櫃,雖然只有一個儲物櫃,
但這儲物櫃裡面可以分隔成很多格,分別存放不同的東西。寫到這我好想要有個好看的櫃子啊...(喂)
建立陣列:
var theArrayName = new Array(number);
theArrayName:陣列的變數名稱
(number) 的部分為陣列值的長度或是陣列初始值,如果未知可以不填
存放陣列值:
var theArrayName = [keyValue1, keyValue2...];
keyValue:存在陣列的值,寫在 [] 裡面,如果沒有寫就是空的初始陣列
提取陣列值:
theArrayName[indexKey] = keyValue;
[indexKey]:索引的意思,通常從 0 開始計算,
以儲物箱來說的話,就是箱子的第 N 個格子,
也可以說是書本的第 N 頁、或是房子的第 N 個房間,例如寫 5 的話,就會提取到陣列裡第 6 個值(因為從 0 開始計算喲)。
原本自己很天的以為可以這樣寫:
var time[0, 1, 2, 3, 4] = [5, 8, 9, 3, 4]
結果 console 狠狠地打了我的臉:
SyntaxError: Unexpected token [
所以...請不要自作聰明...(腫臉狀)
另外是陣列資料形態的問題:
var test = new Array(5);
alert(test[0]);
這結果會是 undefined ,因為我只告訴陣列長度卻沒有給陣列值,所以只有 undefined 可以顯示。
換個方式
var test = new Array("5");
alert(test[0]);
這時候結果就是 5 。因為在這裏宣告的是陣列的"值"而不是"長度",所以當我呼叫 0 (第一個)的時候,答案就出來囉!
陣列還有 2d 的還有 3d 的....改天再補上>_<
本文同步發表於 http://azzurro.blog.aznc.cc/learn_javascript_08/
雖然不太一樣,ES6支援一個語法叫做Destructuring Assignment,可以:
var [a, b, c] = (function() {return [1, 2, 3]})();
然後a, b, c三個變數內容就分別是1, 2, 3。