问题标签 [ecmascript-2021]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
327 浏览

javascript - Flow 不支持某些 JavaScript (ECMAScript) 内置方法,我该怎么办?

作为一名习惯于严格类型语言的嵌入式软件工程师,在用 JavaScript 编写实验性实用程序时,我不得不使用 Flow ( https://flow.org )。

用 JS+Flow 编写代码大约 10 分钟后,Flow('flow-bin' 二进制文件)给了我以下错误:

无法调用 string.trim().replaceAll,因为字符串 [1] 中缺少属性 replaceAll(您的意思是替换吗?)。

关于以下(流注释)代码:

Flow 告诉我它在(似乎是一个)“符号”定义文件中找不到(相当广泛实现的)string.prototype.replaceAll(...)函数: tmp/flow/flowlib_1fa18dde633e97c7_501/core.js

这引出了一个问题:

在使用由 ECMAScript 标准定义的(广泛实施的)方法时, Flow 用户是否完全受预置定义文件的支配(或者考虑到浏览器实施 ECMAScript 的快节奏性质,或就此提出的提案/草案)?

我是否必须修改定义文件 (core.js) 才能解决此问题?

0 投票
1 回答
74 浏览

javascript - 读取外部类的隐藏私有字段

我希望在课堂上B我可以阅读 private fields#a#xof class A。但实际上我只能读取#a,万一访问#x我得到一个错误:

无法从类未声明的对象中读取私有成员 #x

看起来像#xB阴影类似的领域A。首先,这似乎不合逻辑-为什么它会以这种方式工作,如果是故意的,那么它是以这种方式计划的吗?是否可以#xA实例内部读取B

如果重要的话,我正在使用 Google Chrome 89.0.4389.90。

PS:同样的问题在俄语中。

0 投票
2 回答
595 浏览

javascript - 什么是 ES2021 (ES12) 中的 WeakRef 和终结器

我想通过一个真正简单的示例以及在哪里使用它们来了解ES2021WeakRef中的内容和内容。Finalizers

我知道,WeakRef是一堂课。这将允许开发人员创建对对象的弱引用,并且 Finalizer 或FinalizationRegistry允许您注册将在对象被垃圾回收时调用的回调函数

0 投票
1 回答
7924 浏览

javascript - JavaScript字符串替换与replaceAll

ECMAScript 2021 添加了一个新的字符串函数replaceAll。很久以前,在不远的星系中,人们使用split+join或正则表达式来替换所有出现的字符串

我创建了以下示例以将新方法与旧方法进行比较。虽然我可以在第一种情况下看到一些差异,例如我不能用+使用替换模式,或者我需要用 转义特殊字符,但在第二种情况下我看不到任何区别。splitjoinRegExp(str,"g")

新方法和旧方法有什么区别(行为差异、性能、浏览器兼容性……)?

0 投票
0 回答
19 浏览

layout - WordPress 主题 2021 中的网格布局模式

希望一切都好

我正在寻找关于 Wordpress 主题 2021 的网格模式。我自己尝试了所有方法,但主页和类别页面布局仍然是循环形式的。这是我网站的链接:- mailpromocode.com。

但在响应模式下,网站运行良好。我不需要改变电话模式。请指导我,以便我自己构建网格布局。

0 投票
2 回答
183 浏览

javascript - 检查打字稿中数组中是否存在元素组合的最佳方法

我有一个包含一些元素的数组,我想检查数组中是否存在某个元素组合,目标元素后面跟着检查集的任何元素,如果是,则返回 true,否则返回 false。例如,如果 inputArray 是 ['a', 'b', 'c', 'd'] 并且寻找组合是 ['a', 'd'] 那么它应该返回 true 因为 inputArray 两者都在正确的序列中. 如果 inputArray 是 ['d', 'b', 'c', 'd', 'a'] 并且组合是 ['a', 'd'],那么它应该是假的,因为 inputArray 包括这两个元素但在错误的顺序或

我可以使用 Set 和 while 循环,但我想知道是否有更优雅或更现代的方法?

0 投票
2 回答
151 浏览

node.js - 顶级等待是否有超时?

随着ES2022 接受了顶级等待,我想知道假设它await import("./path/to/module")根本没有超时是否可以保存。这是我想做的:

这是我在运行时期望看到的node src/commands/do-everything.mjs

我找不到任何关于顶级等待超时的提及,但我想知道我想要做的是否是对该功能的滥用。理论上,Node.js(或 Deno)可能会在达到某个预定义的时间上限(例如 30 秒)后抛出异常。

以下是我在 TLA 之前处理相同任务的方式:

autoStartCommandIfNeeded()__filename如果匹配则执行函数require.main?.filename

0 投票
1 回答
49 浏览

javascript - 如何将 ECMAScript 12 转换为 ECMAScript 10

我写了一个 JS 文件,其中的一些代码在 ECMAScript 12 中。问题是我所有的设备只支持 ECMAScript 10。这是文件Javascript 是否有可用的在线转换器,或者我该如何手动完成?

0 投票
2 回答
135 浏览

javascript - JavaScript 中带下划线的数字文字

我最近遇到了这段代码,如果在 JavaScript 中使用或不使用下划线来编写这些数字文字有什么不同,我就在徘徊:

0 投票
1 回答
63 浏览

javascript - ES12:空值合并运算符和对象

例如我有一个这样的对象:

而且我想为我的对象分配一个'c'键,但前提是它之前没有分配。

通常我们会这样做:

但是 ES12 标准引入了更多新的 Nullish 合并和逻辑运算符,所以有人可以向我解释一下它如何帮助我替换上面的示例null以及0作为数字行为(空字符串和false行为也是一个加号)?

其背后的真正问题是:使用这个新功能真的可以覆盖所有情况并在实际生产项目中取代上面的示例,还是保持更传统的方式更好。(当然,这都是关于语法糖的工作人员,但我想了解更多关于覆盖范围的信息)