什么是类数组?

1、有下标,有length,有push和splice,就是一个类数组。

2、既可以但数组用、也可以当对象用。

3、DOM里面的数组都是类数组。

<script>
    var arr=[1,2,3];

    var obj={
        0:1,
        1:2,
        2:3,
        length:3,
        push:Array.prototype.push,

    };
</script>

浏览器控制台结果

图

数组是数组对象是对象

添加splice方法

    var obj={
        0:1,
        1:2,
        2:3,
        length:3,
        push:Array.prototype.push,
        splice:Array.prototype.splice,

    };

再次打印结果

图

此时的对象是个[]形式的

在后面push一下

    arr.push(4);
    obj.push(4);

然后在查看对象的长度、结果他自增了

图

阿里面试真题

问 console.log后的结果是什么样子的。

    var obj={
        2:'a',
        3:'b',
        length:2,
        push:Array.prototype.push,
        splice:Array.prototype.splice,

    };
    obj.push('c');
    obj.push('d');
    console.log(obj);

结果:

图

原因、push的原理类似、

    obj.push=function (x){
        obj[obj.length]=x;
        obj.length++;
    }

程序是任务0和1是有东西的、所以当push到的时候 正好是已经有的下标、所以。。

Last modification:January 30, 2020
如果觉得我的文章对你有用,请随意赞赏