最全Es6 - Es11( Es9篇)

最全Es6 - Es11( Es9篇),第1张

文末有其他篇链接

Es9 1、扩展运算符和rest参数

Rest参数与 spread 扩展运算符 在 Es6 中已经引入,不过在 Es6 中只针对与数组,在Es9中为对象提供了像数组一样的rest参数和扩展运算符。

let person = { name: '小明', age: 22}
let newPerson = {...person, address: 'gz'} // { name: '小明', age: 22, address: 'gz'}
 // 形参使用解构直接获取对象中需要用到的属性
 function sayHello({name,age,city,...otherDetail} ) {
          
            console.log('你好!我叫' + name+'今年'+age+'岁' + ',来自' + city)
            console.log(otherDetail)
}

 let p = {
            name: '小明',
            age: 25,
            city: '深圳',
            hobby: [],
            married: false
}

sayHello(p)
2、正则扩展-命名捕获分组

如果正则中没有命名分组,则groups 为undefined

const str = "04-25-2017";
const reg = /(?\d{2})-(?\d{2})-(?\d{4})/;
const groups = str.match( reg ).groups // {month: "04", day: "25", year: "2017"}

const {day, month, year} = groups
3、正则扩展-反向断言

反向断言和正向断言的行为一样,只是方向相反。
反向肯定断言使用语法 (?<=…)

比如我们想获取所有的人民币金额,但是不获取其它货币(比如美元):

const regex = /(?<=¥)\d+(\.\d*)?/;
regex.test('¥1.9');     // true
regex.test('.2');      // false

反向否定断言使用语法 (?

const regex = /(?/;
regex.test('¥1.9');     // false???
regex.test('.2');      // true

在上面的例子中,regex.test(‘¥1.9’) 的结果是 true,并不是我们认为的 false。

4、正则扩展-dotAll模式

为 JavaScript 的正则表达式增加了一个新的标志 s 用来表示 dotAll。以使 . 可以匹配任意字符。

/foo.bar/s.test('foo\nbar');    // true
const re = /foo.bar/s;  //  等价于 const re = new RegExp('foo.bar', 's');
re.test('foo\nbar');    // true
re.dotAll;      // true
re.flags;       // "s"

上一篇:最全Es6 - Es11( Es8篇)
下一篇:最全Es6 - Es11( Es10篇)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1296497.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存