问题标签 [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 - 在继续 forEach 循环体之前使用生成器等待输入
无论我阅读了多少生成器文章,我都无法弄清楚......我也尝试安装所有的光纤库,但它们都不会安装在我的机器上,但这没关系,因为我可能应该学习如何无论如何,原生 ES5 机制是有效的。
这就是我的代码到目前为止的样子..
问题在于,可以预见的是,排序是这样的:
而我需要每个输出直接跟随其相应的输入。如何在生成器中做到这一点yield
?
谢谢..
javascript - syntastic 抱怨 ES6 模块语法
我喜欢 javascript 的 syntastic,但我正在使用新的ES6 模块 tranpiler,而 syntastic 对这些类型的语句不满意:
无论如何,我可以对这种类型的陈述保持沉默吗?
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 和模板的讨论.
javascript - 为什么 ES6 WeakMap 不可枚举?
在我重新进入 JavaScript(和相关)之前,我已经完成了很多 ActionScript 3 并且在那里他们有一个 Dictionary 对象,该对象具有弱键,就像即将推出的 WeakMap 一样;但是 AS3 版本仍然像常规的通用对象一样是可枚举的,而 WeakMap 特别没有.keys()
or .values()
。
AS3 版本允许我们安装一些非常有趣和有用的结构,但我觉得 JS 版本有点受限。这是为什么?
如果 Flash VM 可以做到这一点,那么是什么阻止了浏览器做同样的事情呢?我读到它是“不确定的”,但这就是重点,对吗?
javascript - ECMA-262 ReturnIfAbrupt
javascript - javascript中rest参数和扩展运算符的使用
将在 ECMAScript 6 中添加的 rest 参数的用途是什么?
例如,在 ECMAScript 5 中,您可以执行以下操作来获取从第二个元素开始的参数数组:
这将等同于 ECMAScript 6 中的以下代码:
它们之间的区别仅仅是语法还是存在性能问题?
也适用于扩展运算符 (...)
这只是语法更改还是性能问题?
ruby-on-rails-4 - 带有 ES6 模块和 browserify 的 Rails 资产管道
我正在尝试使用 Rails 资产管道实现一些东西,但事实证明这比我希望的要难。
为了清晰地构建应用程序,我计划为 javascript 使用模块系统。为此,我想使用 CommonJS 模块,但我想使用新的 ES6 语法来编写它们以实现未来的兼容性。
我找到了资产管道的 ES6 模块转译器扩展,效果很好,但这只会将其转换为 CommonJS 格式。我仍然需要将它放入浏览器可以理解的 JS 中。为此,我正在考虑使用 Browserify,但我的问题在于将这两者结合起来。
模块转译器以每个文件为基础工作,但 browserify 通过检查所有需要的文件来工作。问题是browserify不能使用原始文件,因为它们不是CommonJS格式,它们是ES6,所以它需要转译版本,但因为这发生在管道中,我不能将browserify指向文件。
有没有办法解决这个问题?
javascript - isNaN 实现背后的原因是什么?
尽管函数的名称在isNaN
语义上指的是值isNaN
,但本机实现会返回true
一些非NaN
对象,如undefined
or {}
。
我认为,例如,下划线的实现更加直观/合乎逻辑:
为什么 ECMA 标准规定了这种违反直觉的行为?
为什么他们不设计仅在要测试的值确实为
真时才isNaN
返回,并留下负担在单独的函数上测试可转换为数字的负担?true
isNaN
isNumber
这样做会带来更多优势,例如在测试数字时不会出现双重否定:
代替
由于他们将Number.isNaN()
在 ECMAScript 6 中引入(它完全符合您的期望),看起来有更多人这样想。
那么,为什么他们isNaN
首先要设计它的方式呢?这只是一个错误的决定还是有充分的理由这样做?
javascript - 什么是 JavaScript 中的“导出默认值”?
我以前从未见过export default
。是否有任何等效的东西export default
可以更容易理解?