跳到主要内容

39 篇博文 含有标签「ECMAScript」

查看所有标签

类的静态初始化块

· 阅读需 2 分钟
郭舒语 ([@_shu](https://twitter.com/_shu))

新的类静态初始化块语法允许开发者将针对某个类定义只运行一次的代码集中到一个地方。考虑下面的示例,其中一个伪随机数生成器使用静态块在 class MyPRNG 定义被评估时初始化一个熵池。

正则表达式匹配索引

· 阅读需 5 分钟
Maya Armyanova ([@Zmayski](https://twitter.com/Zmayski)),经常表达新特性

JavaScript现在具备一个新的正则表达式增强功能,称为“匹配索引”。假设您希望找到JavaScript代码中与保留词重合的无效变量名,并在变量名下输出一个插入号和一个“下划线”,例如:

String.prototype.replaceAll

· 阅读需 4 分钟
Mathias Bynens ([@mathias](https://twitter.com/mathias))

如果你曾经处理过 JavaScript 中的字符串,很可能遇到过 String#replace 方法。String.prototype.replace(searchValue, replacement) 根据你指定的参数返回一个替换了一些匹配项的字符串:

顶层 `await`

· 阅读需 5 分钟
Myles Borins ([@MylesBorins](https://twitter.com/MylesBorins))

顶层 await 使开发者能够在异步函数之外使用 await 关键字。它像一个大的异步函数,使其他 import 它的模块在开始执行其主体之前会等待。

空值合并

· 阅读需 7 分钟
Justin Ridgewell

空值合并提案 (??) 添加了一个新的短路操作符,用于处理默认值。

你可能已经熟悉其他的短路操作符 &&||。这两个操作符处理“真值”和“假值”。假设代码示例为 lhs && rhs。如果 lhs(即左操作数)为假值,则表达式返回 lhs。否则,返回 rhs(即右操作数)。代码示例 lhs || rhs 的逻辑则相反。如果 lhs 为真值,则表达式返回 lhs。否则,返回 rhs

可选的链式操作

· 阅读需 5 分钟
Maya Armyanova ([@Zmayski](https://twitter.com/Zmayski)), 可选链的破除者

在 JavaScript 中长链式的属性访问可能容易出错,因为它们中的任何一个都可能会计算为 nullundefined(也称为“空值”)。在每一步检查属性的存在性容易演变为深度嵌套的 if 语句结构,或者带有长链属性访问的 if 条件语句。

`globalThis`

· 阅读需 2 分钟
Mathias Bynens ([@mathias](https://twitter.com/mathias))

如果你之前为网页浏览器编写过 JavaScript,你可能用过 window 来访问全局 this。在 Node.js 中,你可能使用过 global。如果你编写的代码需要同时在这两种环境下运行,你可能会检测这些对象哪个可用,然后使用它——但是随着你想支持的环境和用例数量的增加,需要检查的标识符列表会迅速膨胀,事情变得复杂起来: