好家伙,
1.陣列
Array應該就是ECMAScript中最常用的型別了,ECMAScript陣列跟其他編程語言的陣列有很大區別,
跟其他語言中的陣列一樣,ECMAScript 陣列也是一組有序的資料,
但跟其他語言不同的是,陣列中每個槽位可以存盤任意型別的資料,
這意味著可以創建一個陣列,它的第一個元素是字串,第二個元素是數值,第三個是物件,
ECMAScript陣列也是動態大小的,會隨著資料添加而自動增長,
2.創建陣列
有幾種基本的方式可以創建陣列,第一種是使用Array 建構式,第二種是使用陣列字面量
2.1.使用Array 建構式創建陣列
可以直接使用new字符創建,可以傳參,也可以直接傳入要保存的數
let Array_1 = new Array();
//創建length為20的陣列
let Array_2 = new Array(20);
Array_3 = new Array("red","blue", "green");
console.log(Array_1,Array_2,Array_3);

2.2.使用陣列字面量創建陣列
let Array_1 = [];
let Array_2 = [1,2,];
Array_3 = ["red","blue", "green"];
console.log(Array_1,Array_2,Array_3);

此處Array_2仍然是空陣列
2.3.Array建構式好友兩個ES6新增的用于創建陣列的靜態方法:from()和of().
from()用于將類陣列結構轉換為陣列實體,
而of()用于將一組引數轉換為陣列實體
console.log(Array.from("Array"));
console.log(Array.of(1,2,3,4,5));

3.陣列空位
使用陣列字面量初始化陣列時,可以使用一串逗號來創建空位(hole),
ECMcript會將逗號之相應索引位置的值當成空位,ES6規范重新定義了該如何處理這些空位,
const options = [1, , , , 5];
for (const option of options) {
console.log(option === undefined);
}

4.陣列索引
跟大部分語言相同,JS的陣列索引也是從"0"開始算起的
let colors = ["red", "blue", "green"]; //定義一個字串陣列
console.log(colors[0]);
//顯示第一項
colors[2] = "black";
//修改第三項
colors[3] = "brown";
//添加第四項
console.log(colors);

有意思的是,我們可以使用length屬性不停的向陣列末尾添加元素
let colors = ["red", "blue", "green"]; //定義一個字串陣列
for (let i = 2; i <= 10; i++) {
colors[colors.length] = "nocolors";
}
console.log(colors);

(實用小技巧+1)
5.陣列檢測
一個經典的ECMAScript問題是判斷一個物件是不是陣列,
在只有一個網頁(因而只有一個全域作用域)的情況下,使用instanceof 運算子就足矣:
使用instanceof的問題是假定只有一個全域執行背景關系,
如果網頁里有多個框架,則可能涉及兩個不同的全域執行背景關系,因此就會有兩個不同版本的Array 建構式,
如果要把陣列從一個框架傳給另一個框架,則這個陣列的建構式將有別于在第二個框架內本地創建的陣列,
為解決這個問題,ECMAScript提供了Array.isArray()方法.這個方法的目的就是確定一個值是否為陣列,
而不用管它是在哪個全域執行背景關系中創建的
let colors = ["red", "blue", "green"]; //定義一個字串陣列
console.log(Array.isArray(colors))

6.迭代器方法
在ES6中,Array的原型上暴露了3個用于檢索陣列內容的方法:keys(),values()和entries(),
方法一: keys()回傳陣列索引的迭代器,
方法二: values()回傳陣列元素的選代器,
方法三: entries()回傳索引/值對的迭代器:
let colors = ["red", "blue", "green"]; //定義一個字串陣列
let colorskeys= Array.from(colors.keys());
let colorsvalues =Array.from(colors.values());
let colorsentries= Array.from(colors.entries());
console.log(colorskeys);
console.log(colorsvalues);
console.log(colorsentries);

(好用直觀)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/539795.html
標籤:JavaScript
上一篇:JS執行機制及ES6
下一篇:JS執行機制及ES6
