常常看到你们用[].slice.call()或者Array.prototype.slice.call(); 我一直是只知其一;不知其二的,今天算是基本弄清楚了,在此记录一下。数组
可能最多见的是Array.prototype.slice.call(arguments) 就是截取(更重要的是获取,slice是获得子数组)函数的参数,而后让arguments等“伪数组”也能够使用数组的各类方法。函数
这种写法看上去非常牛逼,然而,一查才发现,ES6已经优雅的实现,毕竟功能更加的强大:他就是Array.from();spa
let p = document.querySelectorAll('p');prototype
Array.from(p).forEach(function(i){对象
alert(i);string
});io
不仅仅能够转化arguments,元素集合,还能够转化类数组对象,总之很6.function