1. 数组是特殊的对象
(1)基于结构特点 & 类数组
(2)可以基于
“for(while)、for in、for of”
循环迭代遍历
let arr = [10,20,30];
for(let i =0; i<arr.length; i++) {
console.log(arr[i]);
}
// length属于不可枚举的属性,for in 是遍历不到的
for(let key in arr) {
console.log(key, arr[key]);
}
// 数组具有迭代器规范,Symbol.iterator
for(let item of arr) {
console.log(item);
}
(3)浏览器为其提供大量的属性和方法
Array.prototype
扩展:堆栈内存,闭包作用域,EC/VO/AO/GO/GC…
2. 数组中常用的25个API方法
扩展:重写这些内置的方法
(1)维度
- 方法的作用含义
- 方法的实参(类型和含义)
- 方法的返回值
- 原来数组是否会发生改变
(2)增删改查系列方法
- push
- pop
- shift
- unshift
- splice 删除、替换、新增
- slice 查找、浅克隆
- concat
(3)排列排序系列方法
- sort
- reverse
(4)迭代循环系列方法
- forEach
- map
- reduce
- reduceRight
- find
- findIndex
- filter
- some
- every
- entries
(5)其他常用方法
- toString
- join
- indexOf
- lastIndexOf
- includes
- flat
- Symbol(Symbol.iterator)
:for of循环