1. 程式人生 > 實用技巧 >es6中陣列擴充套件

es6中陣列擴充套件

在Javascript中什麼是偽陣列?如何將偽陣列轉化為標準陣列?

無法直接呼叫陣列方法或期望length屬性有什麼特殊的行為,不具有陣列的push,pop等方法,但仍可以對真正陣列遍歷方法來遍歷它們。
典型的是函式的argument引數,還有像呼叫getElementsByTagName,document.childNodes之類的,它們都返回NodeList物件都屬於偽陣列。
可以使用Array.prototype.slice.call(fakeArray)將陣列轉化為真正的Array物件。


偽陣列定義
  • 擁有length屬性,其它屬性(索引)為非負整數(物件中的索引會被當做字串來處理,這裡你可以當做是個非負整數串來理解)
  • 不具有陣列所具有的方法
  • 偽陣列是一個 Object, 而真實的陣列是一個 Array

es5中如何將偽陣列轉化為真陣列
Array.prototype.slice.call(arguments)
// 或
[].slice.call(arguments) 

es6中如何將偽陣列轉化為真陣列