问题标签 [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 回答
376 浏览

javascript - 在继续 forEach 循环体之前使用生成器等待输入

无论我阅读了多少生成器文章,我都无法弄清楚......我也尝试安装所有的光纤库,但它们都不会安装在我的机器上,但这没关系,因为我可能应该学习如何无论如何,原生 ES5 机制是有效的。

这就是我的代码到目前为止的样子..

问题在于,可以预见的是,排序是这样的:

而我需要每个输出直接跟随其相应的输入。如何在生成器中做到这一点yield

谢谢..

0 投票
2 回答
16787 浏览

javascript - syntastic 抱怨 ES6 模块语法

我喜欢 javascript 的 syntastic,但我正在使用新的ES6 模块 tranpiler,而 syntastic 对这些类型的语句不满意:

无论如何,我可以对这种类型的陈述保持沉默吗?

0 投票
2 回答
1222 浏览

javascript - CSP 安全的 ES6 模板文字

是否有一个模板引擎可以解析ES6 模板文字(例如"string ${var}")样式的模板,而不会违反脚本评估的内容安全策略 (CSP) 限制?

CSP 对脚本评估的限制阻止eval限制、new Function和.setTimeout(string)setInterval(string)

有许多模板引擎可以提供或修改以提供类似 ES6 样式的模板文字,例如 John Resig 的MicroTemplates、 lodash _.template 和DoT.js。然而,所有似乎都违反了 CSP 使用new Function.

如果var可以是不受限制的 Javascript,在某些方面会很方便,但由于明显的原因,这可能是不可能的。但是,我需要能够修改引擎以根据需要格式化输出。

在这种情况下,性能不是问题,并且预编译模板不是一种选择。其他人有讨论了预编译

作为附加限制,内容是文本,而不是 HTML。因此,我认为 Knockout 或 PURE 等面向 DOM 的模板引擎不会有效地工作。

我的第一个想法是从mustache.js开始并从那里修改它(即更改mustache.tags = ['${', '}']DIY 解决方案,但我会很感激有关该主题的任何想法,因为似乎很少有关于 CSP 和模板的讨论.

0 投票
1 回答
337 浏览

javascript - 使用 ES6 代理 (Firefox) 的运算符和 valueOf

我运行以下代码:

为什么不在'valueOf'控制台中打印(在 Firefox 24 中)?

请参阅http://jsfiddle.net/WFjvv/1/

0 投票
2 回答
2373 浏览

javascript - 为什么 ES6 WeakMap 不可枚举?

在我重新进入 JavaScript(和相关)之前,我已经完成了很多 ActionScript 3 并且在那里他们有一个 Dictionary 对象,该对象具有弱键,就像即将推出的 WeakMap 一样;但是 AS3 版本仍然像常规的通用对象一样是可枚举的,而 WeakMap 特别没有.keys()or .values()

AS3 版本允许我们安装一些非常有趣和有用的结构,但我觉得 JS 版本有点受限。这是为什么?

如果 Flash VM 可以做到这一点,那么是什么阻止了浏览器做同样的事情呢?我读到它是“不确定的”,但这就是重点,对吗?

0 投票
2 回答
492 浏览

javascript - ECMA-262 ReturnIfAbrupt

最近,我阅读了 ECMAScript 语言规范。我不打算阅读整个规范,我只是拿起了一些部分。我遇到了很多问题,其中一个是这样的:

长度

据我了解,应该是这样的:

我不明白 ReturnIfAbrupt(len) 的含义是什么,我发现了这个:

ReturnIfAbrupt

1.如果参数是突然完成,则返回参数。

2.否则,如果参数是完成记录,则令参数为参数。[[值]]。

什么是突然完成,它与完成记录的区别?他们可以结合一个步骤:如果参数是完成记录,则返回参数。任何建议将不胜感激!

0 投票
6 回答
12806 浏览

javascript - javascript中rest参数和扩展运算符的使用

将在 ECMAScript 6 中添加的 rest 参数的用途是什么?

例如,在 ECMAScript 5 中,您可以执行以下操作来获取从第二个元素开始的参数数组:

这将等同于 ECMAScript 6 中的以下代码:

它们之间的区别仅仅是语法还是存在性能问题?

也适用于扩展运算符 (...)

这只是语法更改还是性能问题?

0 投票
2 回答
4686 浏览

ruby-on-rails-4 - 带有 ES6 模块和 browserify 的 Rails 资产管道

我正在尝试使用 Rails 资产管道实现一些东西,但事实证明这比我希望的要难。

为了清晰地构建应用程序,我计划为 javascript 使用模块系统。为此,我想使用 CommonJS 模块,但我想使用新的 ES6 语法来编写它们以实现未来的兼容性。

我找到了资产管道的 ES6 模块转译器扩展,效果很好,但这只会将其转换为 CommonJS 格式。我仍然需要将它放入浏览器可以理解的 JS 中。为此,我正在考虑使用 Browserify,但我的问题在于将这两者结合起来。

模块转译器以每个文件为基础工作,但 browserify 通过检查所有需要的文件来工作。问题是browserify不能使用原始文件,因为它们不是CommonJS格式,它们是ES6,所以它需要转译版本,但因为这发生在管道中,我不能将browserify指向文件。

有没有办法解决这个问题?

0 投票
0 回答
125 浏览

javascript - isNaN 实现背后的原因是什么?

尽管函数的名称在isNaN语义上指的是值isNaN,但本机实现会返回true一些非NaN对象,如undefinedor {}

我认为,例如,下划线的实现更加直观/合乎逻辑:

为什么 ECMA 标准规定了这种违反直觉的行为?

为什么他们不设计仅在要测试的值确实为 时才isNaN返回,并留下负担在单独的函数上测试可转换为数字的负担?true isNaNisNumber

这样做会带来更多优势,例如在测试数字时不会出现双重否定:

代替

由于他们将Number.isNaN()在 ECMAScript 6 中引入(它完全符合您的期望),看起来有更多人这样想。

那么,为什么他们isNaN首先要设计它的方式呢?这只是一个错误的决定还是有充分的理由这样做?

0 投票
10 回答
579135 浏览

javascript - 什么是 JavaScript 中的“导出默认值”?

文件:SafeString.js

我以前从未见过export default。是否有任何等效的东西export default可以更容易理解?