问题标签 [ecmascript-2018]

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 投票
0 回答
67 浏览

javascript - 测试新正则表达式功能的浏览器兼容性

确定浏览器是否支持ECMAScript 2018 语言规范中指定的新正则表达式功能的最佳实践是什么?

我怀疑你只需要编写 try catch 语句或通过检测浏览器版本来完成,但我想我先在这里检查一下。

0 投票
3 回答
229 浏览

javascript - 复杂对象的扩展语法

假设我有一个像这样的对象

我想利用Spread 语法来返回这个对象的克隆,其中store.errors.p1是一个新对象。以下是最简单的方法吗?

0 投票
3 回答
3887 浏览

javascript - 使用 javascript 的 Symbol.asyncIterator 和 for await 循环

我试图了解 javascript 的Symbol.asyncIterator等待的. 我写了一些简单的代码,它抛出一个错误说:

在尝试使用的行上for await (let x of a)

我无法理解它的原因。

我创建一个空对象a并在同一个对象上插入一个键Symbol.asyncIterator并为其分配一个名为的函数test,该函数返回一个Promise. 然后我使用for await of循环遍历函数将返回的所有值。

我做错了什么?

PS:我在Node版本10.13.0和最新版本Chrome

0 投票
3 回答
1422 浏览

javascript - { ...obj1, obj2 } 究竟做了什么

假设我们有两个对象:

在 Vuex 中有一个方法 replaceState(),根据文档,它接受一个参数并用该对象替换状态。

以下结果会是什么:

更具体地说,究竟是{ ...state, animals }做什么的?

为了带来一些背景,我从这个问题的答案中举了这个例子。在那个问题中,用户想animals用新的 object 替换 state 的属性animals

我不确定这是否与 Vuex / Vue.js 相关,还是纯粹的 JS 问题,但无论如何我都会用 vue.js 标记它。

0 投票
2 回答
702 浏览

javascript - 使用 getter 对对象应用扩展运算符

如果你声明一个带有 getter 的类

您可以在实例化新对象后访问 getter

但这在使用扩展运算符复制对象后不起作用

我认为这有点令人困惑的语法。

0 投票
0 回答
568 浏览

javascript - 带有库和目标集的“ObjectConstructor”类型上不存在属性“条目”

我正在尝试以这种方式使用使用 JSON 解析的 Map:

并且编译器抛出错误

但该方法有效,我能够检索我的地图。我已经寻找其他问题并更改了 tsconfig 文件中的目标和库。里面tsconfig.app.json我有:

并在tsconfig.spec.json

我认为设置目标和库就足够了,但它一直不起作用。为了消除编译器错误,还有什么需要改变的?

0 投票
2 回答
624 浏览

javascript - 如何在解构赋值语法中使用特殊字符(如连字符)?

我很好奇为什么这似乎是不可能的:

是否有可能在未来的 ES 版本中找到该语法?

谢谢你的灯:)

0 投票
1 回答
39 浏览

javascript - 将别名变量分配给新对象

我们如何将别名键分配给新对象,例如

正在返回{c: 1}而不是{f: 1}.

怎样才能做到这一点?

我不想这样做

变量 obj1 = { c: 1 }; var { f: c } = obj1 ; 常量 obj2 = {f}; 控制台.log(obj2);

0 投票
1 回答
315 浏览

ecmascript-6 - 是什么让 ES6 如此特别?

所以我最近才开始一头扎进网络开发。我很快收集到的一件事是 ES5 = 旧的,而 ES6 = 闪亮的和新的。我认为 ES6 是 ES 必须提供的最新最好的。但我刚刚发现 ES6 落后了 3 个标准,而且我一直在使用和喜爱的一些特性甚至不是它的一部分——它们是在后来的规范中出现的。那么为什么我读到的所有东西都让人觉得只有 ES5 和 ES6?

0 投票
1 回答
58 浏览

javascript - 无效的 Unicode 转义 \。使用命名捕获组时

为了在 JavaScript 上使用命名捕获组,我做了以下修改:

但它不再编译(使用 webpack):

如果我\.从正则表达式的末尾删除它,它就会编译,但这是必需的,正常的,根本没有修改。

我不明白与命名捕获组替换的关系。

所以我的问题很简单:这个正则表达式有什么问题?