ECMAScript2021新增了哪些好东西?
Posted Cyyyiyi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ECMAScript2021新增了哪些好东西?相关的知识,希望对你有一定的参考价值。
String.prototype.replaceAll
都用过replace,但只会匹配字串中第一个符合条件的字符。如果希望替换全部符合条件的,以往一般会用到正则。这情况下replaceAll提供了更方便的写法。
const str = \'I love JS,I enjoy it.\'
console.log(str.replace(\'I\',\'You\'))
//=>You love JS,You enjoy it.
Private methods and getter/setter
新增在方法前添加#标志表示其为私有方法。
Class Product {
#showName{
console.log(\'book-name\')
}
showPrice{
console.log(\'19.9\')
}
}
const product = new Product()
person.getName();
// =>报错
同样可以用在获取器getter上:
Class Product {
get #name{
return \'book-name\'
}
get price{
return 19.9
}
}
const product = new Product()
console.log(product.name)
// =>undefined
Promise.any()
Promise新增any方法,可接受一个包含多个请求的数组。返回当中最快响应的请求结果。
const API = \'https://api.github.com/users\';
Promise.any([
fetch(`${API}/cyinside`),
fetch(`${API}/vuejs`),
])
.then(response => response.json())
.then(({ login }) => console.log(`hi ${login}`))
// => hi vuejs
Logical assignment operators
a ||= b
//等价于
a || ( a = b )
a &&= b
//等价于
a && ( a = b )
a ??= b
//等价于
a ?? ( a = b )
Numeric separators
新增允许可以在数值中间添加下划线分隔,增加数值可读性。
const x = 1_000_000_000
console.log(x)
// => 1000000000
WeakRef
WeakRef代表弱引用,主要用途是实现对大型对象的缓存或映射。当不想长时间保存大量已经使用的缓存和映射的时候,可以允许内存被垃圾回收。如果以后需要它,再生成新的缓存。
详细解释可看[[MDN] https://developer.mozilla.org... ]
以上是关于ECMAScript2021新增了哪些好东西?的主要内容,如果未能解决你的问题,请参考以下文章
译ECMAScript 2016, 2017, 2018 新特性之必读篇
ECMAScript6新特性数组扩展(扩展运算符新增方法一新增方法二新增方法三)-全面详解(学习总结---从入门到深化)