2024/04更新:将ES2023标准特性补充完整
ECMAScript 2022 标准
class fields
类相关特性的集合
private instance methods and accessors
私有实例方法和访问器
private Instance Fields
私有实例字段
public Instance Fields
公有实例字段
static class fields and methods
静态类字段和方法
private static fields and methods
私有静态字段和方法
RegExp Match Indices
正则匹配,新增 /d
修饰符,exec 方法返回的结果数组就会多出一个 indices
属性,用来返回匹配结果的开始索引和结束索引。
class static block
类里面的静态区块
Top-level await
顶级区块使用 await
Ergonomic brand checks for Private Fields
检测实例的类中是否含有私有属性
hasOwn
Object
新增 hasOwn
方法替换原有的 hasOwnProperty
,判断某个属性是对象本身的属性,还是原型链上的属性,Object.hasOwn()
方法是比 Object.prototype.hasOwnProperty()
方法更加 便捷
和 安全
的策略。当 Object.create(null)
创建一个不继承自 Object.prototype
的对象,使 hasOwnProperty
方法无法访问。
at
数组新增 at
方法
Error Cause
Error
构造函数新增一个 cause
附加参数
ECMAScript 2023 标准
findLast 和 findLastIndex
数组新增两个查找方法
findLast
从后往前查找符合要求的数据findLastIndex
从后往前查找符合要求的数据的 Index
Hashbang 语法
在文件头加入Hashbang #!/usr/bin/env node
,你可以在命令行中直接键入 ./hello.js
运行以下脚本(脚本文件名:hello.js
),而无需使用 node ./hello.js
:
Symbols as WeakMap keys
扩展了 WeakMap
,允许使用 Symbol
作为key
Change Array by copy
提供一些通过复制的方式(不直接修改原数组)更改数组的方法
toReversed()
数组反转方法,reverse
的复制版本,区别在于 toReversed
会返回一个新的数组,原数组不会改变
toSorted(compareFn)
数组排序方法,sort
的复制版本,区别在于 toSorted
会返回一个新的数组,原数组不会改变
toSpliced(start, deleteCount, ...items)
就地移除或者替换已存在的元素和/或添加新的元素,splice
的复制版本,区别在于 toSpliced
会返回一个新的数组,原数组不会改变
with(index, value)
with()
通过返回一个指定索引处的值被新值替换的新数组,来改变数组中指定索引处的值,原数组不会被修改。
参考
--- END ---
评论区