文末有其他篇链接
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篇)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)