Js中数组和伪数组的区别

目录

        1.创建对象和数组

        2.对象和数组的关系

        3.数组和伪数组


        1.创建对象和数组

                        创建对象

let obj1 = {}
let obj2 = new Object()

                        创建数组

let arr1 = []
let arr2 = new Array()

        2.对象和数组的关系

                        有句话说的好,万物皆对象。JavaScript是有原型继承的,所有的JavaScript的内置构造函数都是继承自Object.prototype。在这个前提下,可以理解成使用内置对象方法创建的新对象(new Array和 [ ])等,都是拥有Object.prototype的属性。

                        

        3.数组和伪数组

                        数组本质上就是一个有秩序的集合。数组的元素可以是任意类型,但一般我们设置一个新的数组时,都是保持该数组内元素的,类型一致。

                        数组具有长度,且长度可变。数组的长度length属性是一个内置属性,所有的数组都有length属性。

                        伪数组是一个对象object,具有一个length属性,一般以下标作为属性。例如arguments,还有dom中获取的节点对象列表也是一个伪数组。

                        伪数组变成真数组的方法  

function fn1(a,b,c){
    return Array.prototype.slice.call(arguments)
}

let arr = fn1(1,2,3)
console.log(arr)        //[1,2,3]
function fn2(...arguments){
    return arguments
}
let newArr = fn(1,2,3)

console.log(newArr)   //[1,2,3]

                        数组可以使用数组的所有方法,但是伪数组不可以直接使用数组的方法,需要先将伪数组变为真数组才能使用数组的所有方法。

猜你喜欢

转载自blog.csdn.net/Jsy_997/article/details/124659221