译者按: JavaScript从简单变复杂了,做者从另外一个角度看待这个问题。javascript
为了保证可读性,本文采用意译而非直译。另外,本文版权归原做者全部,翻译仅用于学习。html
JavaScript从不移除旧的特性,新版本老是向后兼容。我但愿咱们可以把那些重复的旧的特性清理一下,可是保持兼容有太多的好处。我在本文会解释。前端
1. 向后兼容的优点
- 迁移到新的语言版本是一件垂手可得的事情。举个例子,若是你使用ES6,全部旧代码无需任何改动。
- 避免了代码版本化。若是你容许一些代码是“旧”的,有一些是“新”的:
- 语言引擎和工具变得更加复杂
- 开发人员须要当心应对不一样的版本
- 你不能随意移动代码了(若是代码基础库是混合的)
2. 一些处理JavaScript扩展功能的技巧
- 授课和学习:你能够直接忽略旧的特性,不单单是它们长什么样,它们干吗也无需知道
- 使用Linter来辅助码代码
- 使用Prettier来美化代码
3. 一个干净的JavaScript
若是你想要使用一个比较简洁的JavaScript,你能够忽略不少旧的语法,下面是一些建议:java
- 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 checkses6
5. 阅读更多
关于Fundebug
Fundebug专一于JavaScript、微信小程序、小游戏BUG监控,自从2016年双十一正式上线,Fundebug已经服务了一年半时间,累计处理了5亿+错误事件,获得了众多知名用户的承认。Fundebug支持主流前端框架的bug监控,欢迎各位老铁体验!小程序