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新增了哪些好东西?的主要内容,如果未能解决你的问题,请参考以下文章

ES6的新特性 — 新增关键字letconst

译ECMAScript 2016, 2017, 2018 新特性之必读篇

种草ECMAScript2021新特性

ECMAScript6新特性数组扩展(扩展运算符新增方法一新增方法二新增方法三)-全面详解(学习总结---从入门到深化)

Chrome 最近带来了哪些有意思的新东西?

Chrome 最近带来了哪些有意思的新东西?