过去,我们使用各种各样的方法来将类似Array对象的东西(比如 arguments
和 NodeList
) 转换成真的数值。比如下面这个:
基本上,这些东西我们都可以使用Array.prototype.slice.call()
这样的方法将arguments
和NodeList
等转行成想要的形式。
如今,我们有了更直接的方法,直接将这些类数组的对象转化成真正的对象。
将NodeList
转化成 Array
var divs = Array.from(document.querySelectorAll('div'));
// Array[232] (every DIV on the page)
将 arguments
转化成 Array
function something() {
var args = Array.from(arguments);
// Array['yes', 1, {}]
}
something('yes', 1, {});
将 String
转化成 Array
Array.from('JavaScript'); // 很像'JavaScript'.split('')
// ["J", "a", "v", "a", "S", "c", "r", "i", "p", "t"]
这些写法非常的简单清晰,不需再使用slice
等间接方法!