问题标签 [ecmascript-6]

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 回答
178 浏览

javascript - 这个的javascript生成器值

thisjavascript中的javascript生成器的价值是什么?在下面的代码中,两个比较都返回 false,当我执行 a 时.toSource()this似乎是一个 empty Object。对 ECMA 或 MDN 文档的引用会很有帮助,我在其中都找不到任何东西。

0 投票
1 回答
200 浏览

javascript - 检测 JavaScript 中的 for...of 循环支持

这可能吗?例子:

我想检测是否可以这样做。

0 投票
1 回答
271 浏览

javascript - 在 ECMAScript 6 草案中,使用 StopIteration 异常来表示迭代结束的基本原理是什么?

ECMAScript 6 规范草案中StopIteration,使用异常来表示迭代结束而不是使用专用方法(hasNext在 Java/Scala 和MoveNextC# 中)来检查迭代结束的基本原理是什么。

抛开潜在的性能问题不谈,在我看来,异常不应该用于并非真正异常的事情。

0 投票
13 回答
214429 浏览

javascript - JavaScript 中的映射与对象

我刚刚发现了这个功能

Map:Map 对象是简单的键/值映射。

这让我很困惑。常规 JavaScript 对象是字典,那么 aMap与字典有什么不同呢?从概念上讲,它们是相同的(根据Stack Overflow 上的另一个问题

该文档也无济于事:

Map 对象是键/值对的集合,其中键和值都可以是任意的 ECMAScript 语言值。不同的键值可能只出现在 Map 集合中的一个键/值对中。使用创建 Map 时选择的比较算法区分不同的键值。

Map 对象可以按插入顺序迭代其元素。映射对象必须使用哈希表或其他机制来实现,这些机制平均提供的访问时间与集合中的元素数量呈次线性关系。本 Map 对象规范中使用的数据结构仅用于描述 Map 对象所需的可观察语义。它不是一个可行的实现模型。

…对我来说仍然听起来像是一个对象,所以很明显我错过了一些东西。

为什么 JavaScript 获得了一个(良好支持的)Map对象?它有什么作用?

0 投票
0 回答
307 浏览

javascript - yield* 与 ecmascript 6 上的 yield

我一直在修补最新 Node.js 上的新和谐生成器以及使用它们进行流控制的库,如cogen-rungene

的用法yield很清楚,但我注意到yield*后面两个库中嵌套生成器函数的语法,但第一个库中没有。我找不到任何关于它的参考。¿ 有什么区别和用例?

0 投票
5 回答
6769 浏览

javascript - What are ES6 generators and how can I use them in node.js?

I was at a node.js meetup today, and someone I met there said that node.js has es6 generators. He said that this is a huge improvement over callback style programming, and would change the node landscape. Iirc, he said something about call stack and exceptions.

I looked them up, but haven't really found any resource that explains them in a beginner-friendly way. What's a high-level overview of generators, and how are the different (or better?) than callbacks?

PS: It'd be really helpful if you could give a snippet of code to highlight the difference in common scenarios (making an http request or a db call).

0 投票
3 回答
183 浏览

javascript - “MultiplicativeExpression”是什么意思?

我正在阅读 EcmaScript6 规范和算术运算符部分(http://www.ecma-international.org/ecma-262/5.1/#sec-11.6.1),它是这样提到的

加法表达式:

乘法表达式

加法表达式 + 乘法表达式

AdditiveExpression - 乘法表达式

这是什么意思 ?

0 投票
2 回答
3284 浏览

node.js - Nodejs Harmony/ES6 中的地图集合坏了?

似乎 Nodejs 0.10.20 中的 Map 已损坏。我用 --harmony (包括 --harmony_collections 标志)启动它。
如需参考,请查看http://dailyjs.com/2012/10/15/preparing-for-esnext/
下面的示例在 Firefox 20.0 中运行。

在 Nodejs 控制台中,我执行以下操作

> var map = new Map([ ["name", "Nicholas"], ["title", "Author"]]);
未定义
> 地图
{}

所以构造函数初始化似乎不起作用。然后我按照 Firefox 示例进行操作,但它们大多不起作用:

> console.log(map.has("name")); // true
false
undefined
> console.log(map.get("name")); // "尼古拉斯"
undefined
undefined
> console.log(map.has("title")); // true
false
undefined
> console.log(map.get("title")); // “作者”
undefined
undefined
> console.log(map.size()); // 2
TypeError: Object # has no method 'size'
at repl:1:17
at REPLServer.self.eval (repl.js:110:21)
at repl.js:249:20
at REPLServer.self.eval (repl .js:122:7)
在接口。(repl.js:239:12)
在接口。
在 Interface._onLine (readline.js:202:10)
在 Interface._line (readline.js:531:8)
在 Interface._ttyWrite (readline.js:760:14)
在 ReadStream.onkeypress (readline.js:99: 10)

我很困惑这些基本的 Map 方法不起作用。我有 Nodejs 版本 0.10.20

0 投票
1 回答
1570 浏览

javascript - 如何使用带有 selenium webdriver 承诺的产量(生成器)?

我正在尝试使用生成器node 0.11.x来让我的生活更轻松地编写Selenium测试。我的问题是我不知道如何正确利用它们。我几乎 100% 肯定这一定是语法问题。

我正在使用官方selenium-webdriver模块(2.37.0 版)和co(2.1.0 版)来创建我的生成器。

这是一个没有生成器/产量魔法的常规测试:

以下是尝试使用 yield/generator 魔术获得相同结果的 2 次尝试:

如您所见,isPresentis always undefined,除非在then()promise 的回调中。我必须承认,我对生成器或承诺都不太熟悉,所以我可能会遗漏一些非常明显的东西。

0 投票
2 回答
18522 浏览

javascript - `return function *(){...}` 是什么意思?

我在Koa中看到了一些奇怪的东西。它有一些新的函数名称(来自https://github.com/koajs/koa/blob/master/examples/co.js#L10):

是什么return function *()意思?*我们可以在 JavaScript 中声明一个名称为 的函数吗?