ES9JavaScript新特性

ES9

1.给对象添加rest参数和扩展运算符

ES6中给数组添加了扩展运算符和rest参数,ES9对对象进行了扩展。通过扩展运算符合并时,相同属性名会覆盖。

    <script>
      //ES9里给对象新增了扩展运算符和rest参数,使用方法与ES6里相同/
      //rest参数,放在形参里。
      function connect({ host, port, ...user }) {
        console.log(host);
        console.log(port);
        console.log(user);
      }
      connect({
        host: "127.0.0.1",
        port: 3306,
        username: "admin",
        password: "tiger",
        type: "master",
      });

      //扩展运算符作为实参
      const user1 = {
        name: "张三",
        age: 18,
      };
      const user2 = {
        name: "李四",
        age: 20,
      };
      const address = {
        adds: "北京",
      };
      const number = {
        num: 12345,
      };
      //合并时属性相同会覆盖
      const user = { ...user1, ...user2, ...address, ...number };
      console.log(user);
    </script>

2.正则扩展\反向断言\dotAll

(1)ES9新增?<> 表达式,给待取值命名,并放在groups中,方便使用,不用再用下标。
(2)添加反向断言(?<=)
(3)dotAll:引入/s 修饰符。使得可以匹配任意单个字符。

<script>
      let str = '<a href="https://www.baidu.com">百度</a>';
      //正则表达式,ES9新增了?<>表达式,可以新增groups的属性和值----------------
      const reg = /<a href="(?<url>.*)">(?<text>.*)<\/a>/;
      const result = reg.exec(str);
      console.log(result);
      console.log(result.groups.url);
      console.log(result.groups.text);
      //正向断言------------------------------------------------------------
      let str1 = "welcome520LIU";
      //   const reg1 = /\d+(?=L)/;
      //反向断言:(\d+)表示以数字开头的连续数字-----------------------------------
      const reg1 = /(?<=e)\d+/;
      const result1 = reg1.exec(str1);
      console.log(result1);
      //dotAll模式"斜杠后面写要省略的符号,例如:换行s"----------------------------------------------------------
      let str3 = `
      <ul>
        <li>
            <a>肖申克的救赎</a>
            <p>上映日期</p>
        </li>
        <li>
            <a>阿甘正传</a>
            <p>上映日期</p>
        </li>
     </ul>`;
      //用.*代替多个换行  ?表示反贪婪
      const reg3 = /<li>.*?<a>(?<name>.*?)<\/a>.*?<p>(?<date>.*?)<\/p>.*?<\/li>/gs;

      let result3;
      let data = [];
      while ((result3 = reg3.exec(str3))) {
        data.push({ title: result3.groups.name, time: result3.groups.date });
      }
      console.log(data);
    </script>在这里插入代码片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值