草庐IT

ecmascript-2016

全部标签

javascript - ECMAScript/Javascript 6 中的类是否需要 IIFE?

如果我有ClassCar{}我需要用我们的函数闭包来包装它吗?var会被提升到窗口吗?还是只是去上课?转译时呢?Traceur/babel会把它变成IIFE并让我们变成var吗?我需要:(function(){ClassCar(){}}());为了安全? 最佳答案 不需要像此处所示的类car的IIFE包装器,事实上,这将创建一个执行上下文并从页面的其余部分隐藏该类。所以你只需将其保留为(不是小写)classCar(){}Var仍然以与之前相同的方式被提升。它将被提升到执行上下文的顶部。如果代码当前位于窗口的上下文中,那么var将在此

javascript - `es2016` 预设的 Babel 是否实现了尾调用优化?

我使用以下示例来测试Babel和es2016预设的尾调用递归:'usestrict';try{functionr(n){if(n%5000===0)console.log(`reachedadepthof${n}`);r(n+1);}r(0);}catch(e){if(!(einstanceofRangeError))throwe;elseconsole.log('stackblown');}我的package.json文件是:{"name":"tail-call-optimization","version":"1.0.0","description":"","main":"inde

javascript - typescript 对象解构结果为 "Property assignment expected."

我正在将一个项目从Babel转换到Typescript并收到以下编译器错误:errorTS1136:Propertyassignmentexpected.来自如下代码:varauth={...this.props.auth};此代码以前在Babel下运行良好,但在尝试通过Typescript编译时导致上述错误。Typescript中的对象解构是否不同? 最佳答案 您要找的特征是Objectspread/restoperators(建议用于ES7)。看起来已经计划但尚未实现:Wewanttowaitfortheproposaltore

javascript - 如何使用 Array.prototype.filter 过滤对象?

给定vararr=[1,2,true,4,{"abc":123},6,7,{"def":456},9,[10]]我们可以使用Number构造函数过滤数组arr中的数字项varres=arr.filter(Number);//[1,2,true,4,6,7,9,Array[1]]true和[10]应该在结果数组中吗?如果我们在arr处将false替换为truevararr=[1,2,false,4,{"abc":123},6,7,{"def":456},9,[10]]varres=arr.filter(Number)//[1,2,4,6,7,9,Array[1]]使用Array.isAr

javascript - 有没有 ECMAScript Validator

是否有像HTML和CSS那样的ECMAScript验证器?理想情况下,我需要一些自动化的方法来检查此标准的3.0版。 最佳答案 尝试JSLint.默认情况下,它实际上针对ECMAScript3的更严格子集进行验证,但您可以切换一些选项以使其更宽容。如果需要,您还可以启用ECMAScript5构造。 关于javascript-有没有ECMAScriptValidator,我们在StackOverflow上找到一个类似的问题: https://stackoverf

javascript - ECMAScript 5 在任何浏览器中可用吗?

我想尝试一些新的ECMAScript5功能。我想做一些类似于谷歌搜索时发现的代码的事情:varobj={};Object.defineProperty(obj,"value",{value:true,writable:false,enumerable:true,configurable:true});(function(){varname="John";Object.defineProperty(obj,"name",{get:function(){returnname;},set:function(value){name=value;}});})();print(obj.value)

javascript - ECMAScript Promise.all 方法适用于 jQuery.Deferred。为什么?

我正在研究JavaScript中的Promises。我很感兴趣能否将ECMAScriptPromises与其他实现结合起来,例如jQuery$.Deferred。当Promises.all与jQuery$.Deferred一起正常工作时,我感到很惊讶。我试图在jQuery源代码和CommonJSPromises/A规范中找到答案,但我仍然误解了为什么这段代码按我预期的方式工作(在10秒后执行console.log,而不是5秒):varpromise=newPromise(function(resolve,reject){setTimeout(function(){resolve();/

javascript - Chrome 38 中的 ecmascript 6 特性

我们有一个数组,每个页面上都有许多属性。有时它有一个“值”属性。我们使用myArrayObject['values']检查它并期望是字符串或未定义。更新到Chrome38后myArrayObject['values']返回functionvalues(){[nativecode]}经过一番挖掘,这似乎与V8ticket有关实现@@unscopablesforthe6thEditionofecmascript.这些变化是committed两个月前。不久后,一名开发人员试图rollthembackwiththenotethattheywere"web-breaking".所以问题是,Arr

javascript - ES6、ES7(及更高版本)、ES2015、stage-0、stage-1(及更高版本)之间的关系是什么?

我最近对有关“新式”JavaScript的文章中的以下术语感到困惑:ES6ES7(有时,尽管很少,ES8和更大版本)ES2015(有时是ES2016及更高版本)第0阶段(和第1阶段及更大)似乎其中一些是其他功能的子集,但我不太清楚哪些是哪些子集。 最佳答案 公平地说,这有点令人困惑。:-)四位数字是年份,其他是规范版本。ES2015是ES6。它是ECMAScript2015的缩写,它是该语言的官方名称,由规范的第6版定义(因此称为“ES6”)。来自thespec:StandardECMA-2626thEdition/June2015

javascript - ECMAScript 6 类中静态方法的用途

ES6中的静态类方法应该处理ES5中的哪些问题?Babel文档在itssectionregardingES6classes中有以下示例,尽管它实际上并未说明此模式完成的任务。Classessupportprototype-basedinheritance,supercalls,instanceandstaticmethodsandconstructorsclassSkinnedMeshextendsTHREE.Mesh{constructor(geometry,materials){super(geometry,materials);this.idMatrix=SkinnedMesh.