JavaScript一团乱,这是好事

译者按: JavaScript 从简单变复杂了,作者从另一个角度看待这个问题。

本文采用意译,版权归原作者所有

JavaScript 从不移除旧的特性,新版本总是向后兼容。我希望我们能够把那些重复的旧的特性清理一下,但是保持兼容有太多的好处。我在本文会解释。

1. 向后兼容的优势

  1. 迁移到新的语言版本是一件轻而易举的事情。举个例子,如果你使用 ES6,所有旧代码无需任何改动。
  • 只有 ES 模块很难采用,因为它破坏了向后兼容性。
  1. 避免了代码版本化。如果你允许一些代码是“旧”的,有一些是“新”的:
  • 语言引擎和工具变得更加复杂
  • 开发人员需要小心应对不同的版本
  • 你不能随意移动代码了(如果代码基础库是混合的)

2. 一些处理 JavaScript 扩展功能的技巧

  • 授课和学习:你可以直接忽略旧的特性,不仅仅是它们长什么样,它们干嘛也无需知道
  • 使用 Linter 来辅助码代码
  • 使用 Prettier 来美化代码

3. 一个干净的 JavaScript

如果你想要使用一个比较简洁的 JavaScript,你可以忽略很多旧的语法,下面是一些建议:

  • var: 使用 let 和 const
  • function: 使用箭头函数和方法定义(method definition)。优势:更容易处理 this。(具体信息)
  • Promises: 只使用 async 函数。你不能完全避开使用 Promises。
  • 迭代访问对象:使用 map
  • 循环:避免使用 for-in,尽量避免使用 for, 建议使用 for-of。
  • 参数:使用 rest parameters(…args)
  • Function.prototype.apply():使用 spread operator(f(..myArray))
  • 构造函数:使用 class
  • IIFEs(立即调用函数): 使用块作用域

4. 待定

typeof 和 instanceof 非常复杂,我无法建议哪个取代哪个。推荐这篇博客:Beyond typeof and instanceof: simplifying dynamic type checks

5. 阅读更多

关于Fundebug

Fundebug专注于JavaScript、微信小程序、支付宝小程序线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了80亿+错误事件。欢迎大家免费试用

版权声明

转载时请注明作者 Fundebug以及本文地址:
https://blog.fundebug.com/2018/06/19/js-backward-compatibility/

您的用户遇到BUG了吗?

体验Demo 免费使用