1、數組擴展
1.Array.from()
做用:用於將類數組對象轉爲標準數組(類數組對象Array-like-object,可遍歷的對象 iterable)
語法:
var doms = document.getElementsByTagName('div');
console.log(doms, [].slice.call(doms), Array.from(doms));
function ff(){
var arr=Array.from(arguments);
}es6
from方法能夠接受第二個參數,做用相似於map,用來對數組的每個元素進行處理,將結果放入一個新的數組中(映射)
from能夠將各類值轉爲數組,擁有map的功能,只要有一個原始的數組解構,就能夠先對其進行處理,而後轉爲一個標準的數組,最後可使用新數組調用數組的各類方法
from將字符串轉爲數組,返回字符串長度
使用es5如何將字符串轉爲數組? split 使用split轉的話。會將大於\uffff的unicode編碼認爲是兩個字符
使用from。因爲其能夠識別各類unicode編碼,能夠避免將大於\uffff的編碼算做兩個字符的bug
2.Array.of()
用於將一組值轉爲數組,定義數組,主要用於彌補Array()構造函數的不足之處(Array()構造函數會由於參數的不一樣,作不一樣的處理,參數個數大於2,才能真正的生成一個數組)
若是使用of替代Array(),Array.of()總會返回一個新的數組,若是沒有參數就是一個空數組
3.copyWithin()該方法是數組實例化的方法,做用:將當前數組內部指定範圍內容的成員複製到其餘位置(會覆蓋其餘位置的元素)
語法:[1,2,3,4].copyWithin(target,start,end)
target:必須,從這個位置開始替換
start:可選,從這個位置開始讀取,默認是0,負值表示倒着數,最後一個元素表示-1
end:可選,表示讀取大這個位置結束,默認值是數組的長度,負值表示倒序。不包含這個位置的元素
eg:[1,2,3,4,5,6,7,8,9].copyWithin(6,0,3);
==>[1,2,3,4,5,6,1,2,3]數組
4.find()和findIndex()
數組實例化方法,用於找出第一個複合條件的元素,參數是回調函數
原理:將全部元素一次執行回調函數,找到第一個返回true的元素,並將該元素返回,結束遍歷,若是沒有找到返回出的元素,結果返回undefined
find方法的回調函數 能夠接受三個參數。分別是:值,下標,原數組;
findIndex()數組實例化對象的方法,用法與find同樣,返回第一個複合條件的元素的下標,若是沒有找到符合條件的元素,返回-1
5.fill() 填充
使用給定的值,填充一個數組,fill方法用於空數組初始化很是方便,數組中已經有的元素將會被所有抹掉
fill()有三個參數「
[1,2,3,4,5,6].fill('a',3,5);
a:表示填充的內容
3,5:表示填充的開始和結束位置,包括3不包括5
6.includes()
返回一個布爾值,用於判斷數組中是否包含某一個元素,包含返回真,不包含返回假,與字符串的includes方法相似
能夠接受第二個參數,表示從哪一個位置開始搜索,默認是0,負數表示到這來,若是超過數組長度,則認爲是從0開始
7.數組的空位
數組的空位指的是在數組的某個位置上沒有任何值,好比:new Array(3) //[,,];
注意:空位不是undefined,若是一個位置上是undefined,說明這個位置上是有值的
es5:
大部分狀況會跳過空位
forEach().filter(),every(),some()等遍歷方法會直接跳過空位
map() 會跳過空位,可是會保留這個值
join() 頭toString() 會將空位視爲undefined處理,而真正的undefined和null將會被處理爲空字符串‘’
es6:全部的空都是undefined
注意:因爲數組中出現空值會影響數組的使用,處理方法不一致,全部工做過程當中儘量避免出現空值dom