ECMAScript 最新提案简介
source phase import
- 状态:Stage 3
- 内容:允许以
import source foo from "./foo.wasm"
的语法导入wasm模块的中间状态,实现细粒度的模块控制。 - 作用:实现 WASM 模块的中间状态导入,进行细粒度的模块控制。
- 使用:
import source {add} from './add.wasm';
deferred import evaluation
https://github.com/tc39/proposal-defer-import-eval
- 状态:Stage 2
- 内容:允许通过
import defer * as x
的语法来延迟初始化模块。 - 作用:延迟导入模块的初始化,优化性能。
- 使用:
import defer * as utils from './utils.js';
optional chaining assignment
- 状态:Stage 1
- 内容:扩展了可选链运算符
?.
到赋值表达式中,如foo?.bar = value
。 - 作用:进行可选链赋值,如果左值不存在则不执行赋值。
- 使用:
obj?.prop = value
停止隐式类型转换
- 内容:新提案应该默认不进行隐式类型转换,直接抛出异常。
- 作用:杜绝隐式类型转换带来的隐患。
Promise.withResolvers
https://github.com/tc39/proposal-promise-with-resolvers
- 状态:Stage 3
- 内容:向Promise添加
withResolvers()
静态方法,方便获取Promise实例及其回调函数。 - 作用:简化手动创建 Promise 的代码。
- 使用:
const {promise, resolve, reject} = Promise.withResolvers();
proposal-array-grouping
https://github.com/tc39/proposal-array-grouping
- 状态:Stage 2
- 内容:新增
Object.groupBy()
和Map.groupBy()
方法方便数组分组。 - 作用:方便对数组进行分组操作。
- 使用:
Object.groupBy(array, callback)
Deferring Module Evaluation
https://github.com/tc39/proposal-defer-import-eval
- 状态:Stage 1
- 内容:新增导入形式实现延迟模块执行。
- 作用:延迟模块代码的执行,优化性能。
- 使用:
import defer * as utils from './utils.js';
请查看是否需要添加其他信息。