草庐IT

ecmascript-harmony

全部标签

javascript - 为什么 jQuery 的 $.type() 定义为返回 "object"而不是 "error"用于原生 ECMAScript 错误对象?

更新:我创建了一个工单:http://bugs.jquery.com/ticket/12191jQuery的$.type()函数返回对象的[[Class]]内部属性(小写)。例如:$.type({})//"object"$.type([])//"array"$.type(function(){})//"function"但是,它只适用于这些类型的对象:BooleanNumberStringFunctionArrayDateRegExpObject这段jQuery的源码指定://Populatetheclass2typemapjQuery.each("BooleanNumberStrin

javascript - ECMAScript 5 'use strict' 字符串成本存在哪些?

almond.js中的“使用严格”字符串成本是什么意思?第6行?谷歌没有返回关于作者似乎暗示的问题的信息。 最佳答案 答案isapparently:Itisextrabytestodeliverthe'usestrict'stringinthesource,andthisistryingtobeasmalllibrary.So,justawaytoreducefilesizebyalittlebit.这是一个相当愚蠢的“成本”。压缩前是13个字节——这无关紧要。 关于javascript

javascript - ECMAScript 6 在对象解构中扩展了语法。支持 TypeScript 和 Babel

以下是有效的ECMAScript6吗?最新版本的Babel似乎支持它,但TypeScript不支持它。我找不到任何处理这种情况的ES6引用资料。vara={foo:'foo'};varb={...a}; 最佳答案 不,这不是有效的ECMAScript6。ES6只支持函数参数和数组解构中的剩余语法,以及函数调用和数组构造中的扩展语法。ItseemstobesupportedbythelatestversionofBabelBabel确实实现了objectRestSpreadES7proposal作为experimentalplugin

javascript - ECMAScript 5 和 JavaScript 1.8.5 在语言特性方面有什么关联?

我一直在阅读Mozilla对JavaScript的持续开发,直到版本1.8.5:https://developer.mozilla.org/en/JavaScript.我的问题是:JavaScript1.8.5+和ECMAScript5+在语言特性方面有什么关联?Mozilla的新JavaScript特性(如生成器、数组理解等)是否有机会成为ECMAScript的一部分?我只是想了解是否值得学习JavaScript1.8.5特性(并努力将它们填充到不支持的浏览器中),或者我是否应该忘记JS1.8.5并专注于学习/填充新的ECMAScript5个特征。仅供引用:Mozilla在此处讨论了

javascript - ES6 全局导入

在项目的所有文件中导入一些模块的最佳方法是什么,这样我就不必编写如下内容:importReactfrom'react';importRefluxfrom'reflux';importreactMixinfrom'react-mixin';几乎在每个文件中? 最佳答案 另一个答案涵盖了这一点,但不是有效的ES6,所以我添加了我自己的。在一些中央react.js文件中制作一个中央文件来导入你的react组件export{defaultasReact}from'react';export{defaultasReflux}from'refl

javascript - 如何对 ES6 生成器进行特征检测?

我真的很喜欢ES6生成器。有什么方法可以检测浏览器中的生成器支持吗?我知道生成器目前可能不会出现在很多浏览器中(或者可能根本没有浏览器),但这对我来说没问题。我试过:try{function*(){}}catch(err){console.log("Nogenerators");}但是好像不行。如何检测浏览器对ES6生成器的支持? 最佳答案 eval实际上是正确解决方案的少数情况之一。对于语言结构的改变,你需要这样的东西:try{eval("(function*(){})");}catch(err){console.log(err)

javascript - 函数的非 ECMAscript 代码

我正在通读ECMAScript2015specification.在functions下,我看到:Inadditiontoitsproperties,afunctioncontainsexecutablecodeandstatethatdeterminehowitbehaveswheninvoked.Afunction’scodemayormaynotbewritteninECMAScript(emphasisadded).什么情况下函数的代码不能用ECMA脚本编写? 最佳答案 执行环境提供的原生函数(如String和Array类,

c# - 为什么 C# 和 ECMAScript 规范在可读性上存在很大差异?

我一直在研究ECMAScript规范,发现它非常难以阅读和理解。我必须不断地回溯以将概念留在脑海中。在阅读C#规范时,我能够研究该语言的组件,而无需经常在文档中移动。ECMAScriptSpecificationC#Specification 最佳答案 因为我是唯一一个经常在SO上发帖并且同时是C#语言设计委员会和ECMAScript技术委员会成员的人,所以我可能可以提供一些见解。首先,感谢您对C#规范的客气话。我们非常努力地保持它的可读性,很高兴知道我们已经成功了。其次,我注意到C#规范并不总是那样。C#2.0规范是作为C#1.0

javascript - 生成器的异常处理

最近NodeJS开始使用生成器,我可以做类似的事情:Promise.coroutine(function*(query){varhandle=yielddb.connect(Settings.connectionString);//async,returnspromisevarresult=yielddb.query(query);//async,returnspromisereturnresult;});现在生成器很棒,因为它们让我可以在JS中执行异步/等待。我真的很喜欢能够做到这一点。但是,出现了一个问题。生成器使用try/catchblock,假设我有如下代码:Promise.c

javascript - Eclipse 中有没有办法更改 ECMAScript 合规级别?

在Eclipse4.5(Mars)中安装了JavaScriptDevelopmentTools(JSDT),ECMAScript的默认合规级别设置为ECMAScript3,这已经非常过时了。并且更改合规级别的相关下拉列表已停用,因此无法更改该选项。有没有办法将这些设置更改为较新的标准,例如ECMAScript5或ECMAScript2015? 最佳答案 无法直接在JSDT中使用较新的合规级别,但可以使用名为tern-java的插件您可以使用ES5或ES2015(在ES6之前命名)。我通过安装angular-eclipse添加了这个插