【问题标题】:How to prepare for language changes? [closed]如何为语言变化做准备? [关闭]
【发布时间】:2013-07-16 11:05:14
【问题描述】:

我一直在努力学习 JavaScript 的来龙去脉,最近发现 ECMAScript 6 即将推出 - 学习即将改变并即将退出的东西似乎越来越琐碎。我不知道当新版本出来时是否值得深入研究 ECMAScript5 的复杂细节。作为一名程序员,我应该如何为 ECMAScript 6 做好准备?更一般地说,我应该如何为不断发展的语言做好准备?

【问题讨论】:

  • 我不确定 ES6 中是否有很多 变化,尽管有 新功能。也许我错了
  • ES 6 将(必须)向后兼容,因此现有功能的细节不会改变。恕我直言,即使它们在下一个版本中会以不同的方式表述,也值得理解它们。在阅读草稿时,它们似乎变得更复杂而不是改变太多:-)
  • ES6 需要向后兼容 ES5 否则世界末日,所以你不必担心。
  • 顺便说一句,这个问题可能更适合Software Engineering

标签: javascript ecmascript-5 ecmascript-6


【解决方案1】:

这些差异通常只有使用在大多数网站上不常用的特定功能的用户才会注意到。

如果您现在学习 JavaScript,那么当 ECMAScript6 发布时,您将不会迷失方向,唯一的不同是,您可能会发现对您的用例有用或可能没有用的新功能,并且您可以选择使用或不使用。

简而言之:不要限制你的学习,因为新版本会出来,它不会对你产生任何负面影响。

编辑:事实上,firefox 已经支持 ECMAScript6 的一些功能:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/ECMAScript_6_support_in_Mozilla

【讨论】:

    【解决方案2】:

    Web 环境中的 Javascript(如果这就是您所说的)是一个非常不同的野兽。

    您需要了解引擎的偏差和限制。

    拥抱优雅的降级。

    一些引擎实现了 ES3。其他人用 ES5 完全取代了 ES3 的一致性。有些甚至开始慢慢添加 ES6 特性。最重要的是,一些浏览器还具有不属于 ES3、ES5 或 ES6 的非标准添加。

    你需要处理所有这些:)

    好消息是大部分语言保持不变。即使在某些浏览器中引入了新功能,仍然有一些老一代引擎通常需要支持。

    现在学习 ES5 不会出错;请记住,旧版浏览器没有某些新功能。

    这是大多数流行浏览器中的ES5 compatibility table

    这是one for ES6

    您可以清楚地看到当前的事态。

    如果您对非标准 ES 功能感兴趣,请take a look at this

    【讨论】:

      【解决方案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 中发生了什么。

      【讨论】:

        猜你喜欢
        • 2013-07-09
        • 1970-01-01
        • 2011-09-17
        • 2011-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-03
        相关资源
        最近更新 更多