问题标签 [ecmascript-2020]

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 投票
1 回答
91 浏览

javascript - 之间的区别??和 ||

我正在浏览 ES2020 中提出的新功能,我偶然发现了 ?? 运算符也称为“空值合并运算符”。

解释很模糊,我仍然不明白它与逻辑 OR 运算符 ( ||)有何不同

0 投票
2 回答
101 浏览

javascript - 有人可以解释一下他们在 ecmaScript 规范中定义的“LeftFirst”布尔标志是什么

有人可以向我解释什么是LeftFirst布尔标志吗?在阅读有关 [relational-operators](https://tc39.es/ecma262/#sec-relational-operators “ECMAScript 中的关系运算符定义”)和抽象关系比较的EcmaScript 规范时,我发现了类似布尔标志的东西变为或但我不知道它的用途以及它的用途可以有人清楚地解释我布尔标志的目的是什么以及为什么在规范中使用它他们给出的解释不太清楚我想知道它的用途是什么布尔标志以及为什么使用它?LeftFirsttruefalseLeftFirstleftFirst

0 投票
1 回答
54 浏览

javascript - ECMAScript 的“抽象关系比较算法”中的“LeftFirst”布尔标志到底是什么?

有人能解释一下LeftFirst布尔标志到底是Abstract Relational Comparison Algorithm什么ECMAScript吗?我知道只有一个运算符<处理所有其他关系运算符,如>, >=,正如 ECMAScript 规范中 使用布尔标志的抽象关系比较<=中提到的那样,例如:当我们编写和运行像become和左操作数这样的操作时移动到操作数所在的右边,右边的操作数移动到之前操作数所在的左边,操作符变成操作符,最后执行这样的操作LeftFirst10 > 5LeftFirst Boolean Flagfalse105510><5 < 10,但现在我的问题是:执行时5 < 10我必须知道首先评估什么操作数,是操作数5还是操作数10?我问这个是因为他们在Abstract Relational Comparison AlgorithmECMAScript的规范中没有提到这一点。

而且我必须知道为什么>=LeftFirsttrue 执行以及为什么<=LeftFirstfalse 执行。请帮助我

0 投票
1 回答
115 浏览

javascript - 可选的链接逻辑

我不确定我是否了解可选链接的 js 实现背后的逻辑。

一切都说得过去。然后:

访问 undefined 的属性会引发错误(#3),但在 2 个可选链接之后访问任意数量的不存在的嵌套属性不会再引发错误。

0 投票
1 回答
891 浏览

javascript - 为什么 Javascript 中的新“matchAll”返回一个迭代器(相对于一个数组)?

ES2020 包含一个新String.prototype.matchAll方法,它返回一个迭代器。我确定我错过了一些愚蠢/明显的东西,但我不明白为什么它不只是返回一个数组。

有人可以解释那里的逻辑吗?

编辑:为了澄清评论中的一些内容,我假设迭代器没有简单地替换数组,因为所有 JS API 的新方式都将返回多个值。如果我错过了该备忘录,并且所有新的 JS 函数都返回迭代器,那么指向该备忘录的链接将 100% 符合有效答案。

但同样,我怀疑并没有做出如此全面的改变,并且 Javascript 的制造者为这个特定的方法做出了一个特定的选择,让它返回一个迭代器......而这个选择的逻辑就是我的我试图理解。

0 投票
0 回答
179 浏览

javascript - ES2020 动态导入()的问题

我正在解析目录中的所有模块,初始化它们,最后导出它们。有问题的模块是knex这样的模型:

每个模型定义都使用公共部分进行扩展:

最后,所有模型都被初始化并导出:

以上似乎有效,但我无法弄清楚如何从另一个文件中导入其中一个模块。我正在尝试按照以下方式做一些事情:

或者

对此的任何帮助将不胜感激!

0 投票
2 回答
1310 浏览

reactjs - 如何在 Next.js 应用程序中使用 ES2020 功能

我一直在尝试使用 ES2020 功能,例如 next.js 中的可选链接功能,但它需要一个新的加载器,我该如何解决这个问题?

0 投票
1 回答
38 浏览

javascript - Javascript ES2020 中是否有等效的 optionalChaining?

众所周知,ES2020 支持 optionalChaining。例如,我们可以编写如下代码: let x = {a:{b:'c'}}; 控制台.log(x?.a?.b); 我们会得到'c'。

但是在某些情况下,我们可能想要使用像 x[a][b] 这样的表达式而不是 xab 我们可以使用像 x?[a]?[b] 这样的表达式来评估每个链接对象的验证吗?

0 投票
1 回答
1030 浏览

reactjs - 我无法在我的 next.js 应用程序中使用新功能 ES 2020

我想在我的 next.js 中使用 ES 2020 的新功能,所以我在我的应用程序中使用了可选更改。当我运行我的代码时,发生了这个错误

然后我运行了这个命令

但问题仍然存在。然后我决定将 babel/core 更新到版本 7,我通过这个命令更新了它

但加载程序错误仍然存​​在,我不知道。这是我的 package.json 文件:

0 投票
1 回答
761 浏览

testing - ES2020 私有类方法/字段和测试

您可能知道,ES2020引入了私有类方法和字段,类似于我们目前在 typescript 中的内容(尽管关键字不同... TS -> private | JS -> #methodName 或 #fieldName)。

链接到 RC(第 3 阶段)https ://github.com/tc39/proposal-private-methods

我们目前可以将它与babel 插件一起使用: https ://babeljs.io/docs/en/babel-plugin-proposal-private-methods

技术栈:

我使用 Jest 和 Enzyme 进行单元测试。

问题:

我面临的问题是,每当我使用这些字段或方法导入一个类时,我只是尝试引用调用它们的 wrapper.instance() 来测试它们,我可以看到私有方法在实例中不可见(这是正确的,因为它是私有的)。

一个示例错误:#someMethod is undefined

你将如何继续接近这个?

您会跳过测试私有方法还是有解决方案?