@panhonhang
        
        2018-08-08T02:31:33.000000Z
        字数 708
        阅读 845
    javascript
什么是伪数组?
伪数组 
1、拥有length属性,其它属性为非负整数。 
2、不具有数组所具有的方法,如push、shift、pop等方法; 
3、伪数组是一个对象 .
用下列代码可以判断
function isArrayLike(o) {   
    if (o && typeof o === 'object' &&
    isFinite(o.length) && o.length >= 0 &&
    o.length===Math.floor(o.length) && 
    o.length < 4294967296)
            return true
    else
            return false; 
}
不过有一个更简单的方法,用isArray()来判断:
Array.isArray(fakeArray) === false;
Array.isArray(arr) === true;
常见的伪数组:典型的arguments参数,调用“getElementsByTagName”,“document.childNodes”之类的,它们返回的NodeList对象都属于伪数组。
如何把伪数组转换为数组?
声明一个空数组,通过遍历把伪类添加给数组。
var arr = []; 
 for (var i = 0; i < ali.length; i++) {  
        arr[arr.length] = aLi[i] 
    }
Array.prototype.slice.call()方法 
slice他返回一个数组,使用call或者apply指向伪类。
var arr = Array.prototype.slice.call(aLi);
使用ES6中Array.from方法;
function f() { 
  return Array.from(arguments); 
}
