一种特殊的对象 JS其实没有真正的数组,只是用对象模拟数组
JS的数组不是典型的数组
典型的数组
- 元素的数据类型相同
- 使用连续的内存存储
- 通过数字下标获取元素
JS的数组
用key,value模拟的;实际上是对象
- 元素的数据类型可以不同
- 内存不一定是连续的(对象是随机存储的)
- 不能通过数字下标,而是通过字符串下标
这意味着数组可以有任何 key 比如 let arr = [1,2,3]
arr['xxx'] = 1
创建一个数组
新建数组的写法
- 简化写法:
let arr = [1,2,3]
- 标准写法:
let arr = new Array(1, 2, 3)
let arr = new Array(3)
,3 表示数组的长度length通过字符串创建数组
let arr = '1,2,3'.split(',')
let arr = '123'.split('')
Array.from('123')
Array.from('123')
把不是数组的东西尝试变成数组(es6新语法)
条件:1. 有0,1,2,3下标
2.有length属性
length决定数组长度:
伪数组
没有数组公用属性的数组,就是伪数组
let divList = document.querySelectorAll('div')
- 伪数组的原型链中并没有数组的原型,不能进行pop,push等操作。
合并两个数组,得到新数组
截取一个数组的一部分
arr1.slice(1)//从第二个元素开始
arr1.slice(0)//全部截取
可以用来复制一个数组
⚠️JS只提供浅拷贝