解析賦值
現假設有以下一個json數據json
var jsonData = { id: 42, status: "OK", data: [867, 5309] };
結果以下的兩種方式輸出的結果徹底相同:數組
let { id, status, data: number } = jsonData; console.log(id, status, number); // 42, 'OK', [867, 5309]
let { id, status, data } = jsonData; console.log(id, status, data); // 42, 'OK', [867, 5309]
其實並不知道爲何兩種方式都支持,以爲就應該是第二種方式才正統數據結構
ES6給數組擴展了一個fill方法,使用方法以下所示:spa
['a', 'b', 'c'].fill(7) // [7, 7, 7]
也就是說它是給數組填充值,可是若是填充的是引用類型的話,則事實上改變其中一個全部的都會改變
以下圖所示:
3d
ES6新增了for of運算,原先有了for in運算,爲何又增長for of運算,那來看看它倆之間的區別
在使用for in循環數組,for in會遍歷數組全部可枚舉屬性,包括原型鏈上的,因此for in更適合遍歷對象,不要使用for in遍歷數組
code
for in 遍歷的是數組的索引,而for of遍歷的是數組的元素值
對象
因此在循環數組的話用for of會更加方便一些blog
Array.from是將相似數組對象(部署了Iterator接口的數據結構,好比字符串和Set結構)轉化爲真正的數組,可是Array.from還接受第二個參數,做用相似於map方法用來對每一個元素進行處理,將處理後的值放入返回的數組索引
console.log(Array.from([1, 2, 3], (x) => x * x));
數組合並接口
var arr1 = [0, 1, 2]; var arr2 = [3, 4, 5]; arr1.push(...arr2); console.log(arr1); // 0,1,2,3,4,5
數組求最大值
console.log(Math.max(...[14, 3, 77]))
擴展運算符還能夠替代Object.assign
let ab = { ...a, ...b }; //這句話跟下面的一樣做用 let ab = Object.assign({}, a, b);
去除數組重量的值
var arrs = [1, 2, 3, 1, 3, 4]; console.log([...new Set(arrs)]); // [1, 2, 3, 4]
另外一種方法去重:
function unique(array) { return Array.from(new Set(array)); }