ES7-11


(1)ES7

  1.数组检测方法:includes函数判断数组中是否含有某个元素

  2.幂运算:**

(2)ES8

  1.async和await

    aysnc:async函数的返回值是promise对象

         返回的promise对象的结果由async的返回值决定

          1.字符串或其他,则为成功resolved

          2.抛出异常,则为失败rejected

          3.返回的就是promise对象,则由promise对象的状态决定   

    await:必须写在async函数中

        await右侧的表达式为promis对象

        await返回值是promise成功的值

        await的promise失败了会抛出异常,需要用try..catch接收

  2.对象方法扩展

    values:获取对象所有的值

    keys:获取对象所有的键

    entries:将对象的每一对键值转化为数组,方便map对象的创建

    getOwnPropertyDescriptors:获取对象的描述对象。即是否可修改、可删除等

(3)ES9

  1.扩展运算符和rest参数

    详情见SE6

  2.正则扩展

    命名匹配:对匹配命名方便修改   const reg = /( ?.*)<\/a>/

    正向/反向断言:正向(?<= [规定字符]) / (?<=么)ld+/                 反向(?=[规定的字符])   /d+(?=啦)/

    dotAll模式:正则中点可以匹配除换行以外的任意放个字符

(4)ES10

  1.fromEntries:将二维数组或map转化为对象形式,和ES8中的entries效果相反

  2.字符串扩展:

    trimStart:清除字符串左侧空白

    trimEnd:清除字符串右侧空白

  3.数组扩展

    flat:将高维数组转化为低维数组

    flatMap:将map转化为一个一维数组

  4.symbol扩展

    description:获取创建symbol对象时传入的参数

(5)ES11

  1.class扩展:

    私有属性 :写法:#age

  2.promise扩展  

    allSettled:返回的结果总是成功的,成功的值是每一个promise对象的执行结果的值

    all:和上面一个类似,不过必须所有的promise执行结果全成功才会返回成功,否则返回失败

  3.正则扩展

    matchAll:获取所有匹配的结果相当于re.findall

  4.可选链操作符(?.)

     当对象的层级比较深时,需要对每一层都要验证来确保他存在。

     config?.db?.host

  5.动态引入impor

    import( " ./hello.js ' ).then( module => {   ....  });

  6.bigInt:大整形,适用于更大数字运算

    写法:let n = 521n;

  7.globalthis

    始终指向全局对象

相关