JavaScript Weird Part (30) - 陣列--任何東西的集合

陣列是包含許多東西的集合,陣列可以被宣告,例如:

1
var arr = new Array();

或者使用陣列實體語法,和物件實體語法類似,除了它是用中括號而不是大括號。放進我要的值,並且在陣列裡面用逗號分隔。

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

陣列索引值從 0 開始,所以我可以用中括號決定我要抓出哪一個值。2 是第三個值,以此類推。這對以其他程式語言處理陣列的人來說,似乎沒什麼需要解釋的地方。但因為 JavaScript 是動態型別,所以它的陣列有一點不一樣。

在大部分程式語言,陣列可以包含一連串相同型別的東西,像是一個數字陣列、一個字串陣列、一個物件陣列。但因為 JavaScript 是動態型別,所以我可以在陣列裡混合不同的型別。我可以有一個數字、一個布林值、一個物件實體(裡面有名稱屬性、地址屬性等等)、放進一個函數(因為函數就是物件,所以這裡用的是函數表示式)、再放進一個字串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var arr =[
1,
false,
{
name:'Tony',
address:'111 Main St.'

},
function(name){
var greeting ='Hello';
console.log(greeting + name)'
},
"hello"
];

console.log(arr);

上驗的例子在輸出的時候會報錯嗎? 顯然沒有。所以 JavaScript 的陣列可以是任何型別的集合

基於這個原因,所以我們可以參照並且執行上面陣列裡的函數,用小括號呼叫,我要怎樣取用函數裡的名稱?作法是到上面陣列裡的函數,找第三個元件,接著用點運算子傳入名稱屬性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var arr =[
1,
false,
{
name:'Tony',
address:'111 Main St.'

},
function(name){
var greeting ='Hello';
console.log(greeting + name)'
},
"hello"
];

console.log(arr);
arr[3](arr[2].name);

所以陣列可以包含不同型別的東西,我可以參照到它,它也可以包括函數,所以我可以呼叫它。

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2020 CYC'S BLOG All Rights Reserved.

UV : | PV :