草庐IT

es6-features

全部标签

c++ - 未评估上下文中的默认模板参数和 lambda : bug or feature?

我们考虑使用完全相同的语法创建两种不同类型的目标。这可以通过lambdas轻松完成:autox=[]{};autoy=[]{};static_assert(!std::is_same_v);但我们不是使用lambda,而是寻找另一种更优雅的语法。这里有一些测试。我们首先定义一些工具:#include#include#definemacroobject#definesingletonobjectconstexprautofunction()noexcept{return[]{};}templateconstexprautodefaulted(Targ={})noexcept{return

javascript - 单行从 ES 6 中的对象获取一些属性

如何在ES6中以最紧凑的方式编写一个只需要几个属性的函数?我想出了使用解构+简化对象文字的解决方案,但我不喜欢在代码中重复字段列表。有没有更slim的解决方案?(v)=>{let{id,title}=v;return{id,title};} 最佳答案 这里有一些更精简的东西,尽管它不会避免重复字段列表。它使用“参数解构”来避免需要v参数。({id,title})=>({id,title})(参见otheranswer中的可运行示例)。@EthanBrown的解决方案更通用。这是一个更惯用的版本,它使用Object.assign和计算

javascript - 原生 ES6 promise 中 Bluebird Promise.finally 的等价物是什么?

这个问题在这里已经有了答案:ES6promisesettledcallback?(8个回答)关闭6年前。Bluebird提供finally无论您的promise链中发生什么,都会调用该方法。我发现它对于清理目的非常方便(比如解锁资源、隐藏加载器......)在ES6原生Promise中有等价物吗? 最佳答案 截至2018年2月7日Chrome63+、Firefox58+和Opera50+支持Promise.finally.在Node.js8.1.4+(V85.8+)中,该功能在标志--harmony-promise-finally后

javascript - 在 for-of 循​​环中访问 ES6 数组元素索引

我们可以使用for-of循​​环访问数组元素:for(constjof[1,2,3,4,5]){console.log(j);}如何修改此代码以也访问当前索引?我想使用for-of语法来实现这一点,既不是forEach也不是for-in。 最佳答案 使用Array.prototype.keys:for(constindexof[1,2,3,4,5].keys()){console.log(index);}如果要同时访问键和值,可以使用Array.prototype.entries()与destructuring:for(const[

javascript - 如何在 ES2015 中编写命名箭头函数?

我有一个函数,我正在尝试将其转换为ES6中的新箭头语法。它是一个命名函数:functionsayHello(name){console.log(name+'sayshello');}有没有办法给它一个不带var语句的名字:varsayHello=(name)=>{console.log(name+'sayshello');}显然,我只有在定义了这个函数之后才能使用它。类似于以下内容:sayHello=(name)=>{console.log(name+'sayshello');}ES6中是否有新的方法可以做到这一点? 最佳答案 Ho

javascript - 不建议在 ES6 中使用 "use strict"?

我还不熟悉ECMAScript6。我刚刚克隆了ReactStarterKitrepo,它使用ES6编写应用程序代码。我惊讶地发现linter是configured禁止出现usestrict指令,我认为这是在ES6之前的JavaScript中推荐的。那有什么意义呢? 最佳答案 ES6模块始终处于严格模式。引用thespec的相关部分:10.2.1StrictModeCodeAnECMAScriptScriptsyntacticunitmaybeprocessedusingeitherunrestrictedorstrictmodesy

javascript - 我可以在生成器中使用 ES6 的箭头函数语法吗? (箭头符号)

也就是说,我该如何表达function*(next){}使用箭头语法?我已经尝试了所有我能想到的组合,但我找不到任何关于它的文档。(我目前使用的是Node.jsv0.11.14。) 最佳答案 CanIuseES6'sarrowfunctionsyntaxwithgenerators?你不能。对不起。根据MDNThefunction*statement(functionkeywordfollowedbyanasterisk)definesageneratorfunction.来自specdocument(我的重点):Thefuncti

javascript - 如何使用 Jest 模拟 ES6 模块导入?

我想测试我的ES6之一modules以特定方式调用另一个ES6模块。与Jasmine这super简单--申请代码://myModule.jsimportdependencyfrom'./dependency';exportdefault(x)=>{dependency.doSomething(x*2);}以及测试代码://myModule-test.jsimportmyModulefrom'../myModule';importdependencyfrom'../dependency';describe('myModule',()=>{it('callsthedependencywit

javascript - Node.js 计划支持导入/导出 ES6 (ECMAScript 2015) 模块

我一直在互联网上寻找,但没有明确的答案。当前Node.js仅使用CommonJS加载模块的语法,如果你真的想使用标准的ECMAScript2015模块语法,你要么必须事先转译它,要么在运行时使用外部模块加载器。目前我对使用这两种方法中的任何一种都不太乐观,Node.js维护者是否甚至计划支持ECMAScript2015模块?我还没有找到任何关于这个的提示。目前,Node.js6.x声称支持96%的ECMAScript2015功能,但没有任何对模块的引用(Node.jsECMAScript2015supportlink)。您知道Node.js是否会在不久的将来立即支持这些模块?

javascript - 在 ES6 类中声明静态常量?

我想在class中实现常量,因为这是在代码中定位它们的意义所在。到目前为止,我一直在使用静态方法实现以下解决方法:classMyClass{staticconstant1(){return33;}staticconstant2(){return2;}//...}我知道有可能摆弄原型(prototype),但许多人建议不要这样做。有没有更好的方法在ES6类中实现常量? 最佳答案 您可以做以下几件事:从模块中导出一个const。根据您的用例,您可以:exportconstconstant1=33;并在必要时从模块中导入。或者,基于您的静