ES7/ES9 -- 新特性与正则

ES7新特性

检查数组中是否包含某个元素 includes 2**10 2的10次方

			let array = ['红楼梦','西游记','三国演义','水浒传']

            console.log(array.includes('红楼梦')) // true
            console.log(array.indexOf('红楼梦')) // 0

            console.log(2**10) // 1024 2的10次方

ES9 正则拓展

(1)正则分组

如下图所示,可以看到明显的正则分组,并且可以将匹配到的值重新命名,使用属性的方式去获取,防止了正则变化时,数字位置变化的问题

			let str = '<a href="http://www.atguigu.com">尚硅谷</a>'
            console.log(str)
			const REG = /<a href="(?<url>.*)">(?<text>.*)<\/a>/  // 此处不能加单引号,?<name>是对匹配到的值进行重名名

			let result = REG.exec(str)

            console.log(result)
            console.log(result.groups.url)

(2)反向断言与正向断言

添加条件,可以判断前面的是什么或者后面的是什么,防止匹配到多个 

(3)dotAll

特点:.是元字符,除换行符以外的任意单个字符,ES9添加了/s可以匹配任意字符,在正则的最后添加一个/s即可

ES10 -- 对象拓展方法

对象和Map的互换

 ES10 -- 字符串的trimStart()与trimEnd()

let str = `  ilove you
   and you   `;
         console.log(str.trimStart()) //去除开始的空白
         console.log(str.trimEnd()) // 去除末尾的空白

ES10  -- flat与flatMap

flat可以把多维数组转换成一维数组,里面的数字是转换的深度 

ES11 -- 私有属性

使用#标注私有属性即可,在类内部可以操作私有属性,在类外部是不可以的

 ES11  -- String的mathAll  匹配所有

for (let v for result){

        //批量提取

}

ES11 -- 可选链操作符?.

config&&config.db&&config.db.host,先判断config是否存在,然后判断config中的db是否存在,然后才获取的host,可以简写为config?.db?.host

ES11 -- 动态import

用的时候再导入,加载速度变快

btn.onclick = function () {
    import('./m1.js').then(module => {
        module.hello();
    })
}

ES11 -- BigInt类型 大整型,在数字后面加一个n即可

更大数字运算,它支持任意长度的整数,不能和普通数值进行运算,运算的结果都是BigInt

let n = 521n;
let m = BigInt(521)

ES11 -- 绝对全局对象gloalThis,指向windows对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值