当前位置:网站首页>ES7/ES9 -- 新特性与正则

ES7/ES9 -- 新特性与正则

2022-06-25 21:50:00 攀登程序猿

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对象

原网站

版权声明
本文为[攀登程序猿]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_45759288/article/details/125347694

随机推荐