今天面試了一我的,竟然不知道如何將僞數組轉換爲數組?前端
length
屬性,並且也是數值下標的對象。Array.prototype
上的方法arguments
document.getElementsByClassName
$('div')
function fun(a,b,c = 1){ arr = arguments console.log( typeof arr, Array.isArray(arr), arr.length, arr.slice, arr, ) fun(3, 2)
Array.from
(ES6+)(babel-polyfill)function fun(a,b,c = 1){ arr = Array.from(arguments) console.log( typeof arr, Array.isArray(arr), arr.length, arr.slice, arr, ) fun(3, 2)
...
展開運算符(ES6+)(babel)function fun(a,b,c = 1){ arr = [...arguments] console.log( typeof arr, Array.isArray(arr), arr.length, arr.slice, arr, ) fun(3, 2)
function fun(a,b,c = 1){ arr = Array.prototype.slice.call(arguments) console.log( typeof arr, Array.isArray(arr), arr.length, arr.slice, arr, ) arr = Array.prototype.slice.apply(arguments) console.log( typeof arr, Array.isArray(arr), arr.length, arr.slice, arr, ) arr = [].slice.call(arguments) console.log( typeof arr, Array.isArray(arr), arr.length, arr.slice, arr, ) arr = [].slice.apply(arguments) console.log( typeof arr, Array.isArray(arr), arr.length, arr.slice, arr, ) } fun(3, 2)
function fun(a,b,c = 1){ arr = []; for(var i = 0,length = arguments.length; i < length; i++) { arr.push(arguments[i]); } console.log( typeof arr, Array.isArray(arr), arr.length, arr.slice, arr, ) } fun(3, 2)