tc39提案简介

发布时间 2023-07-15 14:35:52作者: 被咯苏州

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';

请查看是否需要添加其他信息。