伪数组,就是像数组一样有 length 属性,也有 0、1、2、3 等属性的对象,看起来就像数组一样,但不是数组。
    伪数组特点:
    1.拥有 length 属性。但是其length属性不会像真正的数组一样随着元素的添加删除自动更新
    2.可以遍历伪数组,但是不具备数组的方法

    1. var fakeArray = {
    2. "0": "first",
    3. "1": "second",
    4. "2": "third",
    5. length: 3
    6. };
    7. delete fakeArray["2"]; //fakeArray中的length不会发生更新
    8. for (var i = 0; i < fakeArray.length; i++) {
    9. console.log(fakeArray[i]);
    10. }
    11. // 此时fakeArray虽然具备length属性,但是不能直接调用数组的方法
    12. // 伪数组存在的意义,是可以让普通的对象也能正常使用数组的很多算法,比如:
    13. Array.prototype.join.call(fakeArray,'+');
    14. Array.prototype.push.call(fakeArray, 'd')

    image.png

    //上面代码的含义:当前的fakeArray对象没有join方法,但是Array.prototype中有,可以将Array.prototype.join中的this改为当前的fakeArray,然后用”+”号进行拼接