jjzjj

ECMAScript

全部标签

javascript - EcmaScript-6 向后兼容性

我很想了解/弄清楚ECMAScript-6的新变化是否适用于旧浏览器。我问这个问题的原因是:我记得在ECMAScript-5中引入了'usestrict';,这是为了兼容旧版本。这意味着旧浏览器将继续正常工作,当它们在解析新的JavaScript代码时遇到'usestrict';语句时将忽略它。并且新的JS引擎将以某种特殊方式处理语句'usestrict';,详见此处Strictmode.所以,来到这个问题我非常怀疑并且很想知道兼容ECMAScript-5的浏览器在解析ECMAScript-6代码时会如何表现。我怀疑的原因是ECMAScript-6新特性涉及语法更改/更新。旧的浏览器是

javascript - ECMAScript 6 中更短的类初始化

每次我创建一些类时,我都需要执行相同的无聊过程:classSomething{constructor(param1,param2,param3,...){this.param1=param1;this.param2=param2;this.param3=param3;...}}有什么办法可以让它更优雅、更短吗?我使用Babel,因此允许使用一些ES7实验性功能。也许装饰器可以提供帮助? 最佳答案 您可以使用Object.assign:classSomething{constructor(param1,param2,param3){O

javascript - 用 ECMAScript 重写 AngularJS 2.0?

所以我今天才发现Angular2.0即将推出,他们使用ECMAScript6,但将其编译为5,等等,等等。这(使用ECMAScript)将如何影响使用?它如何与我用来调用其API的JavaScript兼容?我的意思是,将不同的语言(ES、JS)写在一起?对它的工作原理感到困惑。感谢您的帮助。编辑抱歉@Joseph如果我的问题不够清楚,但我也(主要)想知道ECMAScript5如何在浏览器中运行以及上面的第二段在上下文中保持这一点。JavaScript人员如何使用Angular2.0?ES如何与JS代码协同工作?来自docs:ThoughAngularwillbeinES6,youcan

javascript - 如何检测 ECMAscript 版本?

我想看看我在浏览器中使用的ECMAscript版本(例如chrome59),因为在处理RegExp内容时ECMAscript3和ECMAscript5之间存在一些差异。我已经找到了这方面的相关信息,但是我找不到关于如何检测ECMAscript版本的具体答案。先谢谢了。 最佳答案 也许你可以尝试使用ES6中专门添加的一些数据结构,如Map、Set等。这是为了区分介于ES5和ES6之间,但您可以查找ES5中添加的功能,这些功能在ES3中不存在在你的情况下?try{vark=newMap();console.log("ES6support

javascript - 使用 ECMASCRIPT 6 生成器/函数对数组求和的最佳方法是什么

有没有更好的方法来代替使用生成器函数作为闭包来增加数组的值?varsumArrays=function(){varsum=0;returnfunction*(){while(true){vararray=yieldsum;if(array.__proto__.constructor===Array){sum+=array.reduce(function(val,val2){returnval+val2;});}elsesum=0;}};};vargen=sumArrays();//isthissteprequiredtomakeageneratororcoulditbedoneatle

javascript - 如何在 Firefox 和 Chrome 中使用 'let'(以及支持的 ECMAScript 6 功能)

使用let的ES6脚本如果在“usestrict”定义内,则在最新的Chrome稳定版中按预期运行。如果使用具有特殊类型的脚本标记加载它,它在Firefox中运行良好:但是具有这种特殊类型的文件现在无法在Chrome中运行!在Chrome中没有脚本运行:静默失败,没有控制台消息。什么是跨浏览器解决方案?(我想知道这是否可以在不转译的情况下完成。) 最佳答案 假设您可以控制脚本本身,最简单的解决方案是在脚本中设置一些全局变量,然后检查它是否存在。如果没有,请将此脚本元素替换为没有特殊MIME类型的元素,以便它可以在其他浏览器上运行。之

javascript - JavaScript (ECMAScript5) 严格模式是否提供了值得广泛使用的显着性能优势?

我正在阅读一些关于对JavaScript使用严格模式的文章,一般来说,这个想法似乎是将一组更严格的规则强加给编码器,以确保JS引擎可以更好地优化代码。它几乎感觉像是VisualBasic中“OptionExplicit”的JavaScript等价物。如果这基本上是对我的代码应用严格模式的净效果,那么性能差异是否值得出于习惯而不是个案应用?除了代码稳定性之外,还有其他值得考虑的优势吗?我想要将严格模式应用于我的脚本的一些关键原因是什么? 最佳答案 好吧,严格模式代码当然可以表现得更好,因为它消除了使优化更难的问题,例如,从我的脑海中:

javascript - 什么是 ECMAScript Editon 5.1,它有什么用?

我刚刚偶然发现了这个(在浏览ECMA网站时):http://www.ecma-international.org/activities/Languages/Draft%20Standard%20ECMA-262%205.1%20edition.pdf它说here5.1版将于2011年6月取代第5版。我的问题是:这个版本5.1是什么,为什么要发布它?(第5版有问题吗?)编辑:我发现了这个:ECMAScript5.1isamaintenancerevisionoftheECMAScript5specification.Itcorrectstechnicalandeditorialerror

javascript - Ruby 和 Javascript 之间的主要语义差异是什么

如果要在Javascript引擎之上(在浏览器中或在独立的V8或Spidermonkey之上)实现Ruby,那么Ruby和JS对象模型之间的关键阻抗不匹配是什么? 最佳答案 最直接的显然是ECMAScript是基于原型(prototype)的,而Ruby是基于类加混合的。此外,在Ruby中,封装是通过对象完成的,在ECMAScript中是通过闭包完成的。但是,我的猜测是Ruby的控制流构造将成为比其对象模型大得多的障碍。毕竟,JamesCoglan'sJS.Class基本上是ECMAScript中Ruby对象模型的一个实现,它并不大

javascript - Javascript/EcmaScript 3 是否支持 ISO 8601 日期解析?

您目前如何解析ISO8601日期,例如2010-02-23T23:04:48Z在JavaScript中?有些浏览器在使用下面的代码时会返回NaN(包括Chrome),不过FF3.6+可以。vard=Date.parse("2010-02-23T23:04:48Z");document.write(d);你可以在这里试试http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_parse 最佳答案 这是一个出色的实现,涵盖了边缘情况并回退到native实现。https://g