1. 程式人生 > 其它 >JS實用新語法——第二篇

JS實用新語法——第二篇

ES9(ES2018)

1.async await 

讓非同步請求變成和同步一樣的方法
如:
async ()=>{
   let data = await 非同步請求
  console.log(data)
}
會等非同步請求返回再列印data,所以data不會和之前一樣為undefined。

 

2.finally()

配合 try catch 使用,在最後會執行的函式
如:
 try {
  正常邏輯
}  catch (err) {
  正常邏輯遇到到錯誤進來這裡
} finally{
  在前面邏輯完成後進入這裡
}

 

3.max()

選出最大的數字
如:
const val 
= [99,100,-1,3] console.log(math.max(...val)) //100 console.log(1,23,-1,10) //23  注意只能是數字,不然會返回NAN

 

ES10(ES2019)

1.trimStart()和trimEnd()

去掉文字的頭或尾的空格
如:
const str =  " 1111 " 
console.log(str.trimStart())  // "1111 "
console.log(str.trimEnd())  // " 1111"
console.log(str.trimStart().trimEnd())  // "1111"

 

2.fromEntries()

ES8為我們引入了Object.entries,把一個物件轉為鍵值對的形式(具體看上一篇文章)
這個函式相反將陣列變成物件。
如:
const val =[ [a:11] ]?
cosnt obj = Object.fromEntries(val)  // { a:11 }

 

3.try..catch中的catch的引數變為可選,不再是必須的

 

ES11(ES2020)

1.bigInt

大整數,之前的number最大值只到2^53-19007199254740991 如果再大就會失真
所已bigInt出現了,解決了失真的問題,使用比較簡單數字後加個n就行
如:
const val = 90071992547409911111n 
console.log(val)  
//90071992547409911111

2. ??和?.

??為空值合併,?.為可選鏈
a ?? b 只要左邊的a不為undefined或者 null 就返回a的值,否則返回b的值
a?.b 可選鏈,只有當?.後面的值是存在的才會取值,不然就返回undefined,防報錯好幫手
如:
0??1  // 0
'x'??2 //x
undefine? 2 //2
null??3 // 3
如:
const a={ aa: { b :1 } }
a?.aa?.aaa  //undefine
a?.aa?.b    //1