ECMAScript 2023 正式发布
ECMAScript 2023 现已获得 ECMA International 的批准。ECMAScript 是标准化的 JavaScript 语言,于 1997 年发布了第一版,现已发展成为世界上使用最广泛的通用编程语言之一。
本 Ecma 标准定义了 ECMAScript 2023 Language,是 ECMAScript 语言规范的第 14 版。
ECMAScript 2023,第 14 版,在
Array.prototype
和TypedArray.prototype
上引入了toSorted
、toReversed
、with
、findLast
和findLastIndex
方法,以及Array.prototype
上的toSpliced
方法;在文件开头增加了对#!
注释的支持,以更好地促进 ECMAScript 文件的可执行;并允许在弱集合中使用大多数 Symbols 作为 keys 。
最终提案由 ECMA TC39 在 GitHub 上发布,详细阐述了今年将发布的四个功能:
Array find from last
该提案在Array
和TypedArray
原型上增加了findLast()
和findLastIndex()
方法。这与 Array.prototype.find 和 Array.prototype.findIndex 的行为相同,但会从最后一个迭代到第一个
const array = [{ value: 1 }, { value: 2 }, { value: 3 }, { value: 4 }]; array.find(n => n.value % 2 === 1); // { value: 1 } array.findIndex(n => n.value % 2 === 1); // 0 // ======== Before the proposal =========== // find [...array].reverse().find(n => n.value % 2 === 1); // { value: 3 } // findIndex array.length - 1 - [...array].reverse().findIndex(n => n.value % 2 === 1); // 2 array.length - 1 - [...array].reverse().findIndex(n => n.value === 42); // should be -1, but 4 // ======== In the proposal =========== // find array.findLast(n => n.value % 2 === 1); // { value: 3 } // findIndex array.findLastIndex(n => n.value % 2 === 1); // 2 array.findLastIndex(n => n.value === 42); // -1
Hashbang Grammar
Hashbang,也称为 shebang,是可执行脚本开头的字符序列,用于定义要运行的程序的解释器。当 Unix 内核的程序加载器执行 JavaScript 程序时,主机会剥离 hashbang 以生成有效源,然后再将其传递给引擎。Hashbang Grammar 提案标准化了它的完成方式。
#!/usr/bin/env node // in the Script Goal 'use strict'; console.log(1);
#!/usr/bin/env node // in the Module Goal export {}; console.log(1);
Symbols as WeakMap keys
该提案扩展了 WeakMap API,以允许使用 unique Symbols 作为 keys。
const weak = new WeakMap(); // Pun not intended: being a symbol makes it become a more symbolic key const key = Symbol('my ref'); const someObject = { /* data data data */ }; weak.set(key, someObject);
Change Array by Copy
在Array.prototype
和TypedArray.prototype
上提供了额外的方法,通过返回一个带有变化的新 copy 来实现对数组的改变。
const sequence = [1, 2, 3]; sequence.toReversed(); // => [3, 2, 1] sequence; // => [1, 2, 3] const outOfOrder = new Uint8Array([3, 1, 2]); outOfOrder.toSorted(); // => Uint8Array [1, 2, 3] outOfOrder; // => Uint8Array [3, 1, 2] const correctionNeeded = [1, 1, 3]; correctionNeeded.with(1, 2); // => [1, 2, 3] correctionNeeded; // => [1, 1, 3]
具体可查看:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Mozilla 限制 Pocket 仅可使用 Firefox 帐户登陆
Mozilla 在博客中宣布:以后旗下的Pocket 应用只能使用 Firefox 帐户登陆。 Pocket是一项免费的商业服务,允许用户保存在网络上找到的文章、对文章进行分类,以及阅读和收听这些文章。高级用户还可以获得无广告的体验、全文搜索选项等等。Pocket 还包括发现和推荐功能。 自 2017 年被收购以来,Pocket 一直是 Mozilla 产品系列的一部分。 之前Pocket 用户有四种注册选项:可以使用 Firefox 帐户或创建一个帐户,或使用 Apple / Google 帐户登录,或使用其他电子邮箱进行注册。但使用第三方帐户登录的选项将在未来几个月内被删除,Firefox 帐户将成为唯一的选择。 从 2023 年 7 月 11 日开始,系统将提示 Pocket 用户转换到 Firefox 帐户。而在 2023 年 8 月 15 日之后,只有 Firefox 帐户才能登录。 Mozilla 对用户的疑问发布了详细的 QA 文档,里面详细解释了为何要限制仅 Firefox 登陆,以及Apple / Google 帐户的内容如何迁移到Firefox 帐户等内容。
- 下一篇
GitHub 今天凌晨短暂宕机
GitHub 今天凌晨出现了短暂的宕机。 其网络状态历史页面显示,此次事故主要是 GitHub Action 服务出现问题,不过具体的问题和事故分析暂未透露。 去年 GitHub 也曾经历频繁的宕机,当时的问题是 MySQL 在负载高峰期不堪重负,详情点此查看。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Red5直播服务器,属于Java语言的直播服务器
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合Redis,开启缓存,提高访问速度