Object类型
1.使用构造函数创建
let person = new Object()
2.对象字面量创建
let person = {}
访问对象属性
obj.name obj["name"]
Array类型
let arr = new Array() let arr = new Array(20) let arr = new Array("red","blue","green") let arr = ["red","blue",""green]
数组的length属性不是只读的。设置这个属性可以从数组的末尾移除项或添加项
检测数组
console.log(arr instanceof Array) // 返回布尔
但是网页多个框架实际上有多个作用域其Array构造函数不是相等的,解决方案
Array.isArray(arr)
转换方法
所有对象都由toLocaleString()、toString()、valueOf()方法
let arr = [1, 2, 3] console.log(arr.toString()) console.log(arr.valueOf())
join()实例方法,返回拼接后的字符串,默认用,拼接
console.log(arr.join()) console.log(arr.join('-'))
栈LIFO(last-in-first-out),后进先出
push()实例方法,末尾添加,改变原数组,返回修改后数组的长度
pop()实例方法,末尾移除,改变原数组,返回移除项
队列FIFO(first-in-first-out),先进先出
shift()实例方法,头移除,改变原数组,返回移除项
unshift()实例方法,头添加,改变原数组,返回修改后数组的长度
重排序
reverse()实例方法,原数组反转
sort()实例方法,原数组排序
sort()方法默认会调用每个数组项的toString()转型方法,然后比较得到的字符串再排序
arr.sort((a,b)=>a-b) // 升序 arr.sort((a,b)=>b-a) // 降序
操作方法
concat(arr1,arr2,...)实例方法,不改变原数组,返回拼接后的数组
slice(a,b)实例方法,不改变原数组,返回截取后的数组 [a,b)
splice(要删除的第一项位置,删除的项数,插入项1,插入项2,...),不改变原数组,返回操作后的数组
位置方法
indexOf(查找项,查找起始位置),有返回index,没有返回-1
lastIndexOf()
迭代方法
every(),每一项都满足返回true,否则false
some(),任一项满足返回true,否则false
filter(),过滤满足条件的项,返回过滤后的数组
map(),对每一项进行操作,返回操作后的数组
forEach(),对每一项进行操作,没有返回值
归并方法
reduce()
reduceRight()
let sum = arr.reduce((prev,cur,index,array)=>prev+cur)