问题标签 [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 - 什么时候应该使用 let 和 var?
编辑:请阅读问题!我已经知道区别了。这不是重复的。
显然,现在我应该始终使用var
关键字,因为let
并非所有内容都支持。
当 let 关键字有更好的支持时(比如说,我在几年内编写了一个使用 Harmony 的 Node 应用程序),我应该什么时候使用let
关键字与var
关键字?
我理解其中的区别——<code>var 用于函数范围,而let
用于块范围——但我正在寻找类似“始终使用let
关键字”或“var
在函数顶部使用关键字,但在块中使用 let 关键字”之类的东西像 for 循环”。
javascript - 使用 JavaScript ES6 箭头函数的即时函数
有谁知道如何使用 ES6 箭头语法编写立即函数?
这是 ES3/5 的做法:
我尝试了以下方法,但unexpected token
在最后一行出现错误。
你可以在这里测试:http: //www.es6fiddle.net/hsb8bgu4/
javascript - JavaScript ES6 类中的私有属性
是否可以在 ES6 类中创建私有属性?
这是一个例子。如何防止访问instance.property
?
javascript - 使用 JavaScript 查找特定链接
任何人都可以帮助我使用 JavaScript 的功能来搜索源代码并将网站上的所有链接与我正在寻找的特定链接进行比较。
例如:我正在执行 JavaScript www.youtube.com
,我正在寻找一个特定的 YouTube 链接。
它可能看起来像这样(这当然不起作用):
我怎样才能做到这一点?
javascript - 使用 JavaScript ES6 模块导入现有库
如何使用 JavaScript 的 ES6 模块加载和运行现有库?
例如,假设我需要加载一个现有的 polyfill:
如何在poly
不更改源的情况下运行导入的脚本并将其属性加载到当前命名空间中?
这里有两个实际问题可以帮助澄清我要解决的问题:
我有一个名为
rafPolyfill.js
window.requestAnimationFrame 的脚本。我需要将它导入全局范围并在加载后立即运行它。<script>
使用标签很容易做到这一点:
它运行并将自身加载到全局范围内。使用 ES6 模块如何做到这一点?
我有另一个脚本
Font.js
,它是字体的预加载器。它让您可以像这样创建新的字体对象:var 字体 = 新字体();
我通过使用脚本标签加载 Font.js 来使用它,如下所示:
如果不访问、更改或理解此脚本的源代码,如何使用 ES6 模块以与使用<script>
标签相同的方式加载和使用?我只需要这些脚本在加载时运行并照顾好自己。
一个可能的解决方案可能是使用模块加载器 API:
http://wiki.ecmascript.org/doku.php?id=harmony:module_loaders
本文档描述了加载器的全局绑定System
,但恐怕我没有足够的词汇来完全理解它试图解释的内容。对解码本文档的任何帮助将不胜感激!
javascript - 'let' 和 'const' ECMAScript 2015 (ES6) 有什么区别?
我想知道ES6let
和const
in之间有什么区别。它们都是块作用域,如以下代码中的示例:
在 ES5 中,输出将是:
但在 ES6 中它将是:
我想知道为什么ES6允许改变const
值,问题是为什么我们现在应该使用 'const' ?我们可以改用“让”吗?
注意:jsbin可用于测试,选择JavaScript运行ES5代码,Traceur运行ES6能力。
javascript - ECMAScript 6 或 7 中是否支持静态类型?
ECMAScript 6 中是否支持静态类型?ECMAScript 7 怎么样?
google-chrome - Chrome 中的 ES6 符号
我正在 Google Chrome 中试验新的 ES6 符号,在 Chrome 标志中启用“实验性 JavaScript”后,我可以new Symbol()
在我的代码中使用。
但是,当我尝试运行以下代码时:
我收到以下错误:
TypeError: Conversion from symbol to string
我的代码有什么问题?
谢谢!
javascript - 使用 fs 模块了解 Node JS 生成器
一段时间以来,我一直对 Node JS 感到非常兴奋。我最终决定认真编写一个测试项目来了解最新的 Harmony 构建的 Node.js 中的生成器。
这是我非常简单的测试项目:
https://github.com/kirkouimet/project-node
要运行我的测试项目,您可以轻松地从 Github 中提取文件,然后使用以下命令运行它:
这是我的问题 - 我似乎无法让 Node 的异步 fs.readdir 方法与生成器内联运行。其他项目,例如Galaxy和suspend似乎能够做到这一点。
这是我需要修复的代码块。我希望能够实例化 FileSystem 类型的对象并在其上调用 .list() 方法:
我需要提前做些什么来将 Node 的 fs.readdir 转换为生成器吗?
一个重要的注意事项是,我正在解析所有创建的类函数。这让我能够以不同于普通函数的方式处理生成器函数:
我真的被这个项目难住了。希望有任何帮助!
这是我想要完成的事情:
- 大量使用类,修改版本的 John Resig 的 JavaScript 类支持继承
- 使用生成器获得对 Node 的股票异步调用的内联支持
编辑
我试图实现您的示例功能,但遇到了一些麻烦。