13

我一直在寻找有关废弃的 ECMAScript 4th Edition 的一些信息,但没有取得多大成功,即使在 SO 上也是如此。我知道 Mozilla 的 JavaScript 1.7 实现了第 4 版中提供的许多(全部?)新功能,我想我记得 John Resig 的一篇不错的帖子,但我现在似乎无法在他的博客上找到它。

特别是,我想知道为什么它被完全废弃,取而代之的是 ECMA-262 第 5 版,以及为什么它没有得到改进。其中一些功能非常酷,例如生成器、迭代器、let、新赋值运算符和(我特别喜欢的)解构赋值。

我知道所有这些特定功能只会在具有过时 ECMAScript 实现的浏览器中引发错误,但是为什么不包括它们,因为有一天这些实现会少之又少?还有其他原因吗?我们是否可能会看到一些废弃的功能在未来的版本中重新出现,或者供应商是否害怕破坏兼容性,以至于我们可能永远不会看到对标准的这种改进?

顺便说一句,很高兴了解有关此事的一些意见,您是否对看到从第 5 版中删除的某些功能感到恼火,或者您认为这样更好?是否值得玩转 ECMAScript 4 的实现?

4

4 回答 4

21

简单地说,没有ECMAScript 第 4 版。从第5 版规范

为开发第四版 ECMAScript 做了大量工作。尽管这项工作尚未完成,也没有作为 ECMAScript 的第四版发布,但它为该语言的持续发展提供了信息。目前的 ECMAScript 第五版(以 ECMA-262 第 5 版发布)编纂了对已在浏览器实现中普遍使用的语言规范的事实解释,并增加了对自第三版发布以来出现的新功能的支持。

基本上,有很多关于如何推动 JavaScript 向前发展的非常强烈的意见,其中许多是不兼容的,其中一些主要是在事情崩溃之前被组装成一些人认为的第 4 版(尤其是因为缺乏一些重要实施者的支持)。同时,该标准的新版本已经非常非常迟了,因此经过大量提前谈判,各方于 2008 年 7 月在奥斯陆聚集并商定了一条前进的道路(Brendan Eich [JavaScript 的发明者] 后来称这种方式为“和谐”写下来)。

Harmony 推迟了一些事情,将一些事情彻底搁置(命名空间、包、早期绑定),并且——重要的是——允许委员会推进自 1999 年以来的第一次规范更新:第 5 版。

于 2010-02-24T21:25:38.543 回答
7

如果您有 55 分钟的空闲时间来学习该主题,请观看视频Douglas Crockford:“ECMAScript 的状态和未来”</a> 或成绩单

于 2010-02-24T21:21:40.793 回答
2

基本上它正在成为一个厨房水槽,有太多功能需要实现。

于 2010-02-24T21:26:42.607 回答
1

在Coders At Work的采访中有一些讨论,有两位受访者在这个问题上持相反的立场。

这似乎归结为在 v4 工作人员和社区中其他一些受人尊敬的成员之间关于该语言应该包含什么的根本分歧。

(顺便说一句,我强烈推荐这本书)

于 2010-02-24T21:31:02.973 回答