问题标签 [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 投票
3 回答
32666 浏览

javascript - 什么时候应该使用 let 和 var?

编辑:请阅读问题!我已经知道区别了。这不是重复的。

显然,现在我应该始终使用var关键字,因为let并非所有内容都支持。

当 let 关键字有更好的支持时(比如说,我在几年内编写了一个使用 Harmony 的 Node 应用程序),我应该什么时候使用let关键字与var关键字?

我理解其中的区别——<code>var 用于函数范围,而let用于块范围——但我正在寻找类似“始终使用let关键字”或“var在函数顶部使用关键字,但在块中使用 let 关键字”之类的东西像 for 循环”。

0 投票
3 回答
17407 浏览

javascript - 使用 JavaScript ES6 箭头函数的即时函数

有谁知道如何使用 ES6 箭头语法编写立即函数?

这是 ES3/5 的做法:

我尝试了以下方法,但unexpected token在最后一行出现错误。

你可以在这里测试:http: //www.es6fiddle.net/hsb8bgu4/

0 投票
1 回答
58 浏览

firefox - 为什么 Firefox Map 比作为地图的对象慢?

至少在这个例子中,ECMAScript 6 Map的检索似乎比使用对象要慢。在 Firefox 中,使用以下代码:

输出是:

为什么检查比对象检查慢 4 倍?

0 投票
41 回答
340550 浏览

javascript - JavaScript ES6 类中的私有属性

是否可以在 ES6 类中创建私有属性?

这是一个例子。如何防止访问instance.property

0 投票
4 回答
6256 浏览

javascript - 使用 JavaScript 查找特定链接

任何人都可以帮助我使用 JavaScript 的功能来搜索源代码并将网站上的所有链接与我正在寻找的特定链接进行比较。

例如:我正在执行 JavaScript www.youtube.com,我正在寻找一个特定的 YouTube 链接。

它可能看起来像这样(这当然不起作用):

我怎样才能做到这一点?

0 投票
2 回答
10038 浏览

javascript - 使用 JavaScript ES6 模块导入现有库

如何使用 JavaScript 的 ES6 模块加载和运行现有库?

例如,假设我需要加载一个现有的 polyfill:

如何在poly不更改源的情况下运行导入的脚本并将其属性加载到当前命名空间中?

这里有两个实际问题可以帮助澄清我要解决的问题:

  1. 我有一个名为rafPolyfill.jswindow.requestAnimationFrame 的脚本。我需要将它导入全局范围并在加载后立即运行它。<script>使用标签很容易做到这一点:

它运行并将自身加载到全局范围内。使用 ES6 模块如何做到这一点?

  1. 我有另一个脚本Font.js,它是字体的预加载器。它让您可以像这样创建新的字体对象:

    var 字体 = 新字体();

我通过使用脚本标签加载 Font.js 来使用它,如下所示:

如果不访问、更改或理解此脚本的源代码,如何使用 ES6 模块以与使用<script>标签相同的方式加载和使用?我只需要这些脚本在加载时运行并照顾好自己。

一个可能的解决方案可能是使用模块加载器 API:

http://wiki.ecmascript.org/doku.php?id=harmony:module_loaders

本文档描述了加载器的全局绑定System,但恐怕我没有足够的词汇来完全理解它试图解释的内容。对解码本文档的任何帮助将不胜感激!

0 投票
10 回答
34619 浏览

javascript - 'let' 和 'const' ECMAScript 2015 (ES6) 有什么区别?

我想知道ES6letconstin之间有什么区别。它们都是块作用域,如以下代码中的示例:

在 ES5 中,输出将是:

但在 ES6 中它将是:

我想知道为什么ES6允许改变const值,问题是为什么我们现在应该使用 'const' ?我们可以改用“让”吗?

注意jsbin可用于测试,选择JavaScript运行ES5代码,Traceur运行ES6能力。

0 投票
5 回答
17632 浏览

javascript - ECMAScript 6 或 7 中是否支持静态类型?

ECMAScript 6 中是否支持静态类型?ECMAScript 7 怎么样?

0 投票
1 回答
663 浏览

google-chrome - Chrome 中的 ES6 符号

我正在 Google Chrome 中试验新的 ES6 符号,在 Chrome 标志中启用“实验性 JavaScript”后,我可以new Symbol()在我的代码中使用。

但是,当我尝试运行以下代码时:

我收到以下错误:

TypeError: Conversion from symbol to string

我的代码有什么问题?

谢谢!

0 投票
2 回答
3759 浏览

javascript - 使用 fs 模块了解 Node JS 生成器

一段时间以来,我一直对 Node JS 感到非常兴奋。我最终决定认真编写一个测试项目来了解最新的 Harmony 构建的 Node.js 中的生成器。

这是我非常简单的测试项目:

https://github.com/kirkouimet/project-node

要运行我的测试项目,您可以轻松地从 Github 中提取文件,然后使用以下命令运行它:

这是我的问题 - 我似乎无法让 Node 的异步 fs.readdir 方法与生成器内联运行。其他项目,例如Galaxysuspend似乎能够做到这一点。

这是我需要修复的代码块。我希望能够实例化 FileSystem 类型的对象并在其上调用 .list() 方法:

https://github.com/kirkouimet/project-node/blob/4c77294f42da9e078775bb84c763d4c60f21e1cc/FileSystem.js#L7-L11

我需要提前做些什么来将 Node 的 fs.readdir 转换为生成器吗?

一个重要的注意事项是,我正在解析所有创建的类函数。这让我能够以不同于普通函数的方式处理生成器函数:

https://github.com/kirkouimet/project-node/blob/4c77294f42da9e078775bb84c763d4c60f21e1cc/Class.js#L31-L51

我真的被这个项目难住了。希望有任何帮助!

这是我想要完成的事情:

  1. 大量使用类,修改版本的 John Resig 的 JavaScript 类支持继承
  2. 使用生成器获得对 Node 的股票异步调用的内联支持

编辑

我试图实现您的示例功能,但遇到了一些麻烦。