注意有些語法對(duì)某些瀏覽器不兼容。
主要內(nèi)容:
map未玻,find漏益,filter,some, every深胳,reduce绰疤,includes,
解構(gòu)&&解構(gòu)命名舞终,擴(kuò)展運(yùn)算...轻庆,flat(Infinity),?. 敛劝,??余爆,
Object.keys,Object.values夸盟,Object.entries
map:
遍歷并返回一個(gè)加工過的新數(shù)組(與原數(shù)組length相等蛾方,否者對(duì)應(yīng)的index為undefind)
const arr=[1,2,3,4,5]
const data=arr.map(item=>item*10)
//[10,20,30,40,50]
(若僅僅用來遍歷,數(shù)組內(nèi)為對(duì)象可直接改變內(nèi)部值)
find:
返回一個(gè)匹配的值(匹配到對(duì)應(yīng)的值,不在向下執(zhí)行)
const arr=[1,2,3,4,5]
const data=arr.find(item=>item===3)
//3
filter:
返回一個(gè)數(shù)組(過濾后的數(shù)組)
const arr=[1,2,3,4,5]
const data=arr.filter(item=>item>3)
//[4,5]
some:
返回一個(gè)布爾值桩砰,匹配到任意一個(gè)值拓春,返回true,不在向下執(zhí)行
const arr=[1,2,3,4,5]
const data=arr.some(item=>item===3)
//true
every:
返回一個(gè)布爾值亚隅,任意一個(gè)值不匹配硼莽,返回false,不在向下執(zhí)行
const arr=[1,2,3,4,5]
const data=arr.every(item=>item>0)
//true
reduce:
返回一個(gè)運(yùn)算結(jié)果的總和
const arr=[1,2,3,4,5]
const data=arr.reduce((count,num)=>count+num)
//15
includes:
返回一個(gè)布爾值煮纵,匹配到返回true (常用于語句中)
const arr=[1,2,3,4,5]
if(arr.includes(3)) console.log('true')
//true
解構(gòu)&&解構(gòu)命名:
//解構(gòu)
const {name,age}={name:'李響',age:24}
//李響,24
//解構(gòu)命名
const {name:likeName}={name:'李響'}
//likeName log 李響
//設(shè)置默認(rèn)值
const {name='李響'}={name:''} 或者 const {name='李響'}={}
//李響
//有時(shí)拿到的結(jié)果可能為undefind懂鸵,解構(gòu)會(huì)報(bào)錯(cuò)
const {name='李響'}=obj || {}
//可以給一個(gè)||值
擴(kuò)展運(yùn)算...:
//數(shù)組
const arr0=[1,2,3]
const arr1=[4,5,6]
const arr3=[...arr0,...arr1]
//[1,2,3,4,5,6]
//對(duì)象
const obj0={status:'true',date:'2021-10-25'}
const obj1={flex:'Man'}
const obj3={...obj0,...obj1}
//{status:'true',date:'2021-10-25',flex:'Man'}
flat(num):
返回一個(gè)n維數(shù)組
flat(num):num展開為num維數(shù)組,num可以為Infinity,無論多少層都展開為一維數(shù)組
const arr=[1,[2,[3]]]
const arr1=arr.flat(1)
//[1,2,[3]]
const arr1=arr.flat(2) 或 const arr1=arr.flat(Infinity)
//[1,2,3]
?. ??:
?.可選鏈操作符
日常處理數(shù)據(jù)的時(shí)間行疏,會(huì)遇到對(duì)象中找不到我們寫的屬性,如下
let obj={name:'卡恩'}
let result=obj.sex
//err 報(bào)錯(cuò)
//使用?.
let result=obj?.sex
//undefind 這樣就完美解決了報(bào)錯(cuò)的問題匆光,然后進(jìn)行相應(yīng)的判斷
??空值合并操作符
值為undefind,null返回右邊的值
let name=undefind
let result=name??'赫爾德'
//赫爾德
常用來解決(val!==undefind||val!==null||val!=='')情況
??寫法 :if((val??'')!=='')...
Object.keys:
枚舉對(duì)象的鍵酿联,返回一個(gè)數(shù)組
const obj={name:'李響',age:24}
const arr=Object.keys(obj)
//['name','age']
Object.values:
枚舉對(duì)象的值终息,返回一個(gè)數(shù)組
const obj={name:'李響',age:24}
const arr=Object.values(obj)
//['李響','24']
Object.entries:
枚舉對(duì)象的鍵,值货葬,返回一個(gè)數(shù)組
const obj={name:'李響',age:24}
const arr=Object.entries(obj)
//[['name','李響'],['age','24']]