草庐IT

es6-features

全部标签

javascript - `export { foo as default }` 是有效的 ES2015 吗?

我收到了issueonGitHub关于我的ESLintES2015模块导入/导出验证插件无法识别以下语法中的default导出:export{fooasdefault,bar}我的插件将在哪里检查以下(等效的?)语法没问题:exportdefaultfoo;exportconstbar=..;两者都是Babel和Esprima解析相似的语法没有错误,这适用于两端使用Babel的代码(导入和导出)。但是,我不相信spec允许以前的export{xasdefault}形式:ForeachIdentifierNameninReferencedBindingsofExportClause:It

javascript - 如何在 ES6 类中声明局部函数?

我有一个只能在类内部使用的函数,不希望在类外访问它。classAuth{/*@ngInject*/constructor($http,$cookies,$q,User){this.$http=$http;this.$cookies=$cookies;this.$q=$q;this.User=User;localFunc();//Needtocreatethisfunction,andneedittobeaccessibleonlyinsidethisclass}}到目前为止我所做的是在类外声明函数functionlocalFunc(){return'foo';}classAuth{..

javascript - Javascript ES6 中的静态构造函数

在ES6中,我可以像下面这样创建静态方法。但是我需要定义一个静态构造函数但没有成功。我需要在加载类时只运行一次的东西。我有什么办法可以实现这样的事情吗?classCommander{staticonData(){console.log("blabla");}} 最佳答案 在类主体中包含类设置代码似乎更整洁,因此“类表达式”是独立的。ES6在类主体中接受语法staticconstructor(){/*dostuff*/>但从不运行它。也许是为了将来的语言扩展?无论如何,这是实现预期结果的一种方法。诀窍是使用立即执行的函数表达式来初始化

javascript - 使用 ES6 模块导出/导入单类方法?

假设我在fileA.js中有一个像这样的简单类:classfoo{constructor(x){this.name=x}fooMethod(x){returnx+'hello';}}我想像这样在fileB.js中导入和使用fooMethod:import{fooMethod}from'./fileA';classbar(){...barMethod(x){returnfooMethod(x);}}如何在fileA中编写export来实现这一点? 最佳答案 您必须在原型(prototype)上导出它。但请记住,如果您这样做,您将不会在

javascript - 开放层 3 : add text label to feature

我在这里设置了电流:fullyfunctionalfiddleexample虽然我已经设法缩放到每个多边形要素,但我还想在每个要素上显示一个集中的文本标签……在get_fields方法中找到的field_title变量。我不知道该怎么做,我所有的谷歌搜索都出现了这篇文章:http://openlayers.org/en/v3.3.0/examples/vector-labels.html由于我对OL有点陌生,所以我觉得这完全令人困惑! 最佳答案 要向ol.Feature添加文本,您需要将描述存储在功能中,并且setastyle那是一

javascript - for-of-loop 中的 ES6 导入

有没有办法在ES6中使用for-of-loop(或其他循环)导入和导出多个文件?constmoduleNames=['NumberUtils','StringUtils','ArrayUtils','MyModule','AnotherModule','BaseModule']letmodules={}for(constmoduleNameofmoduleNames){importmodulefrom'./'+moduleNamemodules.moduleName=module}exportmodules没有循环我必须写:importNumberUtilsfrom'./NumberU

javascript - 将 ES5 数组方法与 ES6 生成器一起使用

在ES6生成器中使用新的ES5数组函数的正确方法是什么?我是否必须先将可迭代对象显式转换为数组,还是有更好的方法?例如:function*range(low,high){vari=low;while(ix+y)); 最佳答案 生成器函数返回Iterator对象。IteratorAPI不包括高阶数组方法,例如map、reduce等,因此您需要构建一个中间数组(或使用类似wu.js的库)。您可以使用spreadoperator从(有限)迭代器简洁地构建一个数组:varsum=[...range(0,10)].reduce((e,i)=>

javascript - 在 ES6 Set 中存储数组并按值访问它们

是否有一种简单的方法来验证ES6Set包含的值是特定数组?我想要一个不需要我使用引用的解决方案:varset=newSet();vararray=[1,2];set.add(array);set.has(array);//trueset.add([3,4]);set.has([3,4]);//false到目前为止,我的解决方案是将所有内容存储为字符串,但这很烦人:set.add([3,4].toString());set.has([3,4].toString());//true 最佳答案 不,没有。Set适用于对象和基元,对于防止相

javascript - 我可以触发并忘记 nodejs (ES7) 中的 promise 吗?

我想用babel运行这段代码:redisClientAsync.delAsync('key');returnawaitsomeOtherAsyncFunction();在第一行没有await的异步函数中。这样可以吗?我还能如何运行我不关心的东西?我可以在没有回调的情况下触发非promise函数del('key',null)吗? 最佳答案 是的,你可以这样做,它会并行运行两个异步函数。您刚刚创建了一个promise并将其丢弃。但是,这意味着当promise被拒绝时,您不会注意到。你只会getanunhandledRejectionev

javascript - 为什么ES6定义了map.length==0?

根据MDN:Map.lengthlength属性的值为0。这有什么用例?我理解为什么Map.size在语义上是正确的。但可以肯定的是,几乎总是返回“错误”答案的Map.length是一个坏主意,尤其是当存在疏忽从ES5迁移代码时。有没有办法在使用时强制出错? 最佳答案 JavaScript中的构造函数是常规函数,length函数的属性对应于函数期望的形式参数的数量,在Map的情况下为0。将此与RegExp.length对比,后者为2,因为RegExp构造函数需要两个参数(模式和标志)。