JS實用新語法——第二篇
阿新 • • 發佈:2022-04-08
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-1即9007199254740991 如果再大就會失真 所已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