我正在努力学习 JavaScript 的来龙去脉,最近发现 ECMAScript 6 即将推出——学习即将改变并即将退出的东西似乎越来越琐碎。我不知道当新版本出来时是否值得深入研究 ECMAScript5 的复杂细节。作为 ECMAScript 6 的程序员,我应该如何为自己做好准备?更一般地说,我应该如何为不断发展的语言做准备?
3 回答
最后,我认为 ES6 将于今年年底发布。我开始怀疑它是否会在最后期限之前完成,但即使是这样,浏览器仍然需要时间来采用它。即使在浏览器采用了它之后,你也必须等到很大一部分用户更新他们的浏览器之后,才能真正开始在生产环境中使用 ES6。
回顾过去:ES5 于 2009 年底问世。虽然我已经在一些小型副项目中使用 ES5 大约一年了,但我刚刚获得许可在我的工作场所开始使用它,因为我们'正在放弃对不支持它的浏览器的支持。然而,我们的客户数量有限,而且比一般人群更精通技术,在许多工作场所,ES3 仍然是标准。
我想在浏览器上采用 ES6 将需要类似的时间,这意味着在接下来的 3-4 年(至少)浏览器开发人员将生活在 ES5 世界中(对于 Node 来说,变化会快得多, 尽管)。
此外,ES1-5 中的任何内容都不会消失。浏览器有一个硬性规定,即新版本的 JavaScript 不能向后不兼容旧版本。ECMAScript 委员会致力于“1 JS”理念,或多或少的目标是 1995 年编写的每一段 JS 代码都将在 2015 年运行。
所以 ES5 或多或少只是 ES6 的一个子集。如果您首先学习 ES5,那么您可以在开始学习 ES6 时保留所有知识并添加到其中。我强烈建议你现在就开始在 ES3/5 中打下良好的基础,当你的兴趣被激起时,看看 ES6 中发生了什么。
网络环境中的 Javascript(如果这就是你所说的)是一个非常不同的野兽。
您需要了解引擎的偏差和限制。
拥抱优雅的退化。
一些引擎实现了 ES3。其他人用 ES5 完全取代了 ES3 的一致性。有些甚至开始慢慢添加 ES6 特性。最重要的是,一些浏览器还具有不属于 ES3、ES5 或 ES6 的非标准添加。
你需要处理所有这些:)
好消息是大部分语言保持不变。即使在某些浏览器中引入了新功能,仍然有一些通常需要支持的老一代引擎。
现在学习 ES5 不会出错;请记住,旧版浏览器没有某些新功能。
这是跨大多数流行浏览器的ES5 兼容性表。
这是 ES6的。
您可以清楚地看到当前的事态。
如果您对非标准 ES 功能感兴趣,请查看此.
这些差异通常只有使用在大多数网站上不常用的特定功能的用户才能注意到。
如果你现在学习 JavaScript,那么当 ECMAScript6 出来时,你不会迷失方向,唯一的不同是会有一些新功能对你的用例有用,也可能没用,而且你可以选择使用或不使用。
简而言之:不要限制你的学习,因为新版本会出来,它不会对你产生任何负面影响。
编辑:事实上,Firefox 已经支持 ECMAScript6 的一些功能:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/ECMAScript_6_support_in_Mozilla