问题标签 [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.
javascript - 这个的javascript生成器值
this
javascript中的javascript生成器的价值是什么?在下面的代码中,两个比较都返回 false,当我执行 a 时.toSource()
,this
似乎是一个 empty Object
。对 ECMA 或 MDN 文档的引用会很有帮助,我在其中都找不到任何东西。
javascript - 检测 JavaScript 中的 for...of 循环支持
这可能吗?例子:
我想检测是否可以这样做。
javascript - 在 ECMAScript 6 草案中,使用 StopIteration 异常来表示迭代结束的基本原理是什么?
在ECMAScript 6 规范草案中StopIteration
,使用异常来表示迭代结束而不是使用专用方法(hasNext
在 Java/Scala 和MoveNext
C# 中)来检查迭代结束的基本原理是什么。
抛开潜在的性能问题不谈,在我看来,异常不应该用于并非真正异常的事情。
javascript - JavaScript 中的映射与对象
我刚刚发现了这个功能:
Map:Map 对象是简单的键/值映射。
这让我很困惑。常规 JavaScript 对象是字典,那么 aMap
与字典有什么不同呢?从概念上讲,它们是相同的(根据Stack Overflow 上的另一个问题)
该文档也无济于事:
Map 对象是键/值对的集合,其中键和值都可以是任意的 ECMAScript 语言值。不同的键值可能只出现在 Map 集合中的一个键/值对中。使用创建 Map 时选择的比较算法区分不同的键值。
Map 对象可以按插入顺序迭代其元素。映射对象必须使用哈希表或其他机制来实现,这些机制平均提供的访问时间与集合中的元素数量呈次线性关系。本 Map 对象规范中使用的数据结构仅用于描述 Map 对象所需的可观察语义。它不是一个可行的实现模型。
…对我来说仍然听起来像是一个对象,所以很明显我错过了一些东西。
为什么 JavaScript 获得了一个(良好支持的)Map
对象?它有什么作用?
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).
javascript - “MultiplicativeExpression”是什么意思?
我正在阅读 EcmaScript6 规范和算术运算符部分(http://www.ecma-international.org/ecma-262/5.1/#sec-11.6.1),它是这样提到的
加法表达式:
乘法表达式
加法表达式 + 乘法表达式
AdditiveExpression - 乘法表达式
这是什么意思 ?
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
javascript - 如何使用带有 selenium webdriver 承诺的产量(生成器)?
我正在尝试使用生成器node 0.11.x
来让我的生活更轻松地编写Selenium
测试。我的问题是我不知道如何正确利用它们。我几乎 100% 肯定这一定是语法问题。
我正在使用官方selenium-webdriver
模块(2.37.0 版)和co
(2.1.0 版)来创建我的生成器。
这是一个没有生成器/产量魔法的常规测试:
以下是尝试使用 yield/generator 魔术获得相同结果的 2 次尝试:
如您所见,isPresent
is always undefined
,除非在then()
promise 的回调中。我必须承认,我对生成器或承诺都不太熟悉,所以我可能会遗漏一些非常明显的东西。
javascript - `return function *(){...}` 是什么意思?
我在Koa中看到了一些奇怪的东西。它有一些新的函数名称(来自https://github.com/koajs/koa/blob/master/examples/co.js#L10):
是什么return function *()
意思?*
我们可以在 JavaScript 中声明一个名称为 的函数吗?