[JS奇怪的世界]No.30 觀念小叮嚀:陣列是任何東西的集合

陣列是任何東西的集合

陣列可以包含許多東西的,而且陣列是可以透過函數來宣告建立 ↓

1
var arr = new Array();

但是一般來講很少會使用函數宣告建立陣列,除了不直覺之外也要打比較多的程式碼,所以比較常見陣列實體語法是這個樣子 ↓

1
var arr = [1, 2, 3];

在 JavaScript 陣列是以 0 為基準表示,所以我們可以這樣子取值 ↓

1
2
3
var arr = [1, 2, 3];

arr[0]; // 注意括號是運算子

一般來講這是一個很常見的陣列寫法,相信寫過其他語言的人都知道,但是課堂上講到了一個重點。

JavaScript 是一個動態型別語法。

那這是什麼意思?在大部分程式語言中陣列只可以包含一連串相同型別的東西,像是一整個數字陣列、字串陣列及物件陣列,但 JavaScript 不一樣,它可以立刻就知道陣列中的東西型別,所以我們可以混和各種型別的東西進去 ↓

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var arr = [
1,
'Hello',
true,
{
name: 'Tomy',
address: '111 Main St.',
},
function (name) {
var greeting = 'Hello';
console.log(greeting);
}
];

arr;

目前這個陣列有數值、字串、布林、物件及方法

arr

那我們該如何執行在陣列中的方法呢?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var arr = [
1,
'Hello',
true,
{
name: 'Tomy',
address: '111 Main St.',
},
function (name) {
var greeting = 'Hello';
console.log(greeting + name);
}
];

arr[4]('Tom');

陣列函數

那如果方法要傳入自身陣列中的參數 (name) 該如何傳入 ↓

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var arr = [
1,
'Hello',
true,
{
name: 'Mary',
address: '111 Main St.',
},
function (name) {
var greeting = 'Hello';
console.log(greeting + name);
}
];

arr[4](arr[3].name);

傳入參考

圖源

JavaScript 全攻略:克服 JS 奇怪的部分