es9至es12——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(Math.max(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], ["b",12] ]  // 数字中第一个值a为key,第二个值11为值
cosnt obj = Object.fromEntries(val)  // { a:11, b:12 }

 

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

 

ES12(ES2021)

1.replaceAll()

替换文本中指定文本为新文本
const str="aaaccc"
str.replaceAll("a","1") // 111ccc
注意replaceAll不会影响原变量,如果要改变的话记得赋值

 

作者:博客园-DDjans,转载时请注明来源。

(请勿将文章用在任何商业用途,违者将承担相应法律责任)

posted @ 2022-04-08 16:45  DDjans  阅读(318)  评论(0)    收藏  举报