ECMAScript 2023 新特性预览
ECMAScript 2023 的最终版本预计将于今年 6 月底发布。最新举行的一次 TC39 会议基本已经确定 了 ECMAScript 2023 的新功能列表,预计不会再有任何重大的编辑更改。
本文整理了在 2023 年进入 Stage 4 的几个提案。按照 TC39 的运作流程,每个提案都从 Stage 0 开始,进入 Stage 4 则意味 着该提案已被 ECMAScript 编辑签署同意意见,成为了事实上的标准特性。
Array find from last
该提案在Array
和TypedArray
原型上增加了findLast()
和findLastIndex()
方法。它们与find()
和findIndex()
做同样的事情,但顺序相反。这两个方法都很方便,可跳过创建临时的重复、突变和混乱的索引减法。
const isEven = (number) => number % 2 === 0; const numbers = [1, 2, 3, 4]; // from first to the last lookup console.log(numbers.find(isEven)); // 2 console.log(numbers.findIndex(isEven)); // 1 // from last to the first lookup console.log(numbers.findLast(isEven)); // 4 console.log(numbers.findLastIndex(isEven)); // 3
Hashbang Grammar
Hashbang,也称为 shebang,是可执行脚本开头的字符序列,用于定义要运行的程序的解释器。当 Unix 内核的程序加载器执行 JavaScript 程序时,主机会剥离 hashbang 以生成有效源,然后再将其传递给引擎。Hashbang Grammar 提案标准化了它的完成方式。
#!/usr/bin/env node console.log('hi 👋');
Symbols as WeakMap keys
在 JavaScript 中,Objects 和 Symbols 被保证是唯一并且不能被重新创建的,这使得它们都是WeakMap
keys 的理想候选者。以前的版本或规范只允许以这种方式使用 Objects ,但新的 Symbols as WeakMap keys 提案则提出将 non-registered Symbols 添加到允许的键列表中。
const weak = new WeakMap(); const key = Symbol("ref"); weak.set(key, "ECMAScript 2023"); console.log(weak.get(key)); // ECMAScript 2023
Change Array by Copy
Array.prototype
上的reverse()
、sort()
和splice()
方法就地改变数组。Change Array by Copy 提案添加了那些返回新 copy 方法的等价物—— toReversed()
、toSorted()
和toSpliced()
。该提案还添加了一个with()
方法,该方法返回一个新的数组,其中给定索引处的元素被替换为给定值,以避免使用 bracket notation 的就地突变。
const original = [1, 2, 3, 4]; const reversed = original.toReversed(); console.log(original); // [ 1, 2, 3, 4 ] console.log(reversed); // [ 4, 3, 2, 1 ]
const original = [1, 3, 2, 4]; const sorted = original.toSorted(); console.log(original); // [ 1, 3, 2, 4 ] console.log(sorted); // [ 1, 2, 3, 4 ]
const original = [1, 4]; const spliced = original.toSpliced(1, 0, 2, 3); console.log(original); // [ 1, 4 ] console.log(spliced); // [ 1, 2, 3, 4 ]
const original = [1, 2, 2, 4]; const withThree = original.with(2, 3); console.log(original); // [ 1, 2, 2, 4 ] console.log(withThree); // [ 1, 2, 3, 4 ]

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
“游戏发行版” Manjaro Linux 正在迅速流失用户
基于 Arch Linux 的 Manjaro Linux 似乎正在走下坡路。 ProtonDB 数据显示,在过去的 6 个月里, Manjaro Linux 市场份额一直在下降,现在回到了 Ubuntu 之后的第三位。 Proton 是 Valve 发布开源工具,整合像 Wine 和 DXVK 之类的兼容层,使得在 Linux 系统上玩 Windows 游戏变得非常简单。 ProtonDB 是 Proton 软件公开收集的 Linux 玩家游戏报告,提供 Linux 上游戏表现的综合评分、使用 Proton 的发行版数据、用 Proton 的硬件数据等内容。 Steam 的硬件调查趋势亦是如此,自 Steam Deck 推出后,其自带的 SteamOS 市场份额大涨,而 Manjaro 的占有率在过去一年中一直处于走低状态: Manjaro 建立在 Arch 的基础之上,带有一些额外的预装软件和它自己专属的软件库(整体版本比 Arch 仓库低)。但它的社区和相关文档远不如 Arch Linux,问题也比 Arch Linux 多。 虽然一个系统出现问题是难以避免的,但 Manjaro...
- 下一篇
GIMP 的 GTK3 移植已正式完成
GIMP 维护者 ZeMarmot 表示 GIMP 的 GTK3 移植工作已正式完成。除了一些不推荐使用的 API 没有移植,不会再有重大任务。 GIMP 3.0 的路线图也已将该任务的进度情况更新为“已完成”。其他完成的工作包括移植到 Meson 构建系统、 intltool 使用和多层选择。 GIMP 3.0 仍在积极开发的任务包括重新设计脚本/插件 API、Wayland 支持和 space invasion。 目前看来,虽然 GIMP 的 Wayland 支持仍不稳定,但在去年改进了不少。 按照计划,GIMP 3 会在 2023 年推出 —— 至少会发布一个 RC 候选版。从目前的进度来看,GIMP 3 应该会如约发布。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题