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-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
ES12(ES2021)
1.replaceAll()
替换文本中指定文本为新文本
const str="aaaccc"
str.replaceAll("a","1") // 111ccc
注意replaceAll不会影响原变量,如果要改变的话记得赋值
作者:博客园-DDjans,转载时请注明来源。
(请勿将文章用在任何商业用途,违者将承担相应法律责任)

浙公网安备 33010602011771号