草庐IT

ES分组

全部标签

javascript - 为什么递归生成器函数在 ES2015 中不起作用?

我试图理解ES2015中的生成器,并用它创建了一个递归阶乘函数。但它不起作用。我已经提到了已经存在的问题,例如this关于这个话题,但没有帮助。function*fact(n){if(n谁能找到我在这里遗漏的任何明显问题?我在带有JavaScript-1.7的JSFiddle中使用它here 最佳答案 CananyonefindanyobviousissuesIammissinghere?fact返回一个迭代器,但您正试图将它与一个数字相乘:n*fact(n-1)。那行不通!因为fact返回一个迭代器,但您还想将迭代器的最后一个值与

javascript - 按我的 json 对象分组并获取每个组的计数

我正在使用2个restapi服务。第一个将从名为“主要类别”的列表中获取项目,如下所示:-/test/_api/web/lists/getbytitle('MainCategory')/items?$select=Title它将返回以下json:-{"d":{"results":[{"FileSystemObjectType":0,"Id":15,"ID":15,"ContentTypeId":"0x010006DDBDD3BDC9914B92E911733F2A56E1","Title":"A","Modified":"2017-03-01T12:08:35Z","Created":

javascript - 用 Jest 模拟 ES6 类函数

我有一个问题,关于如何使用Jest模拟ES6类实例,我实际想要测试的方法使用了它。我的真实案例是尝试测试一个Redux异步Action创建者,它发出请求并根据请求结果分派(dispatch)一些Action。这是用例的简化示例://communication.js//AnexportedES6classmodulewithproxytotherequestlibrary.importpostfrom'./post';exportdefaultclasscommunication{getData(data,success,error){constres=post(data);if(res

javascript - 如何在浏览器的 JavaScript 控制台中访问 ES6 模块中定义的函数?

我有一个在ES6模块(sender.js)中定义的函数,如下所示:functionsend(){//dostuff}export{send};此模块随后在应用程序的主要JavaScript文件app.js中使用,如下所示:import{send}from"./sender"send函数在app.js文件中可用,但是在Firefox的Javascript控制台中不:>sendReferenceError:sendisnotdefined如何在JavaScript控制台中导入send函数? 最佳答案 您可以通过将特定函数分配给全局对象来

javascript - google dart 是否生成 ES5 友好的 javascript,它是否包括或排除了 IE8?

我正在做一些研究,看看当前的googledart实现是否对IE8友好。我们的团队必须支持IE8一段时间,我正在尝试找出今天从dart生成的javascript是否适用于这个旧版浏览器。dart转译器是否像coffeescript一样检查输出javascript?最后,dart会生成ES5友好的javascript吗? 最佳答案 Dart仅针对支持ES5的浏览器,即InternetExplorer>=9、Firefox>=4、Opera>=12和相当新的基于WebKit的浏览器。IE8已不在考虑之列。此外,我认为目前,它更有可能在最新

javascript - 使用 Sinon.js 测试一个函数调用 ES6 模块中的另一个函数

我想测试ES6模块中的函数是否调用另一个使用Sinon.js的函数。这是我正在做的事情的基本布局:foo.jsexportfunctionbar(){baz();}exportfunctionbaz(){...}测试.jsimportsinonfrom'sinon';import*asFoofrom'.../foo';describe('bar',function(){it('shouldcallbaz',function(){letspy=sinon.spy(Foo,'baz');spy.callCount.should.eql(0);Foo.bar();spy.calledOnce

javascript - 构造函数使用 ES6 速记符号表现不同

ES6引入了一个shorthandnotation使用函数和属性初始化对象。//ES6shorthandnotationconstobj1={a(b){console.log("ES6:obj1");}};//ES5varobj2={a:functiona(b){console.log("ES5:obj2");}};obj2.a();obj1.a();newobj2.a();newobj1.a();但是,如您所见,这些不同的表示法表现不同。如果我在浏览器(经过测试的Chrome和Firefox)中执行newobj1.a(),我会得到一个TypeError:obj1.aisnotacon

javascript - ES6 支持 Elvis 运算符吗?

这个问题在这里已经有了答案:Isthereanull-coalescing(Elvis)operatororsafenavigationoperatorinjavascript?(22个答案)关闭4年前。Javascript/ES6是否支持Elvis运算符(operator)?示例:varx=(y==true)?:10;示例2:vardebug=true;debug?:console.log("Valueofx:"+x);

javascript - Lo-Dash 数组分组

我现在在Lo-Dash文档站点上花了几个小时,但找不到解决我的问题的方法。不知道怎么叫,所以有点难找。我基本上想将一个数组分组到一个对象中,以便重复的条目是一个字段,而不同的条目是一个数组。例如,我有这个数组:varcharacters=[{'name':'barney','age':42,'pet':'dog'},{'name':'fred','age':35,'pet':'dog'},{'name':'barney','age':42,'pet':'cat'},{'name':'fred','age':35,'pet':'goldfish'}];我想得到这个:[{name:'bar

javascript - 在 ES 6/Harmony 中拆分类定义

假设我在一个像这样的大文件中有一个类:exportdefaultclass{constructor(){}methodA(){}methodB(){}methodC(){}}我想分解类定义,以便methodA、methodB和methodC分别在各自的文件中定义。这可能吗? 最佳答案 你应该能够,因为class应该只是通常原型(prototype)工作流的语法糖:importmethodOnefrom'methodOne'importmethodTwofrom'methodTwo'classMyClass{constructor()