JavaScript一团乱,这是好事

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

为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。

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

1. 向后兼容的优势

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

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已经服务了一年半时间,累计处理了5亿+错误事件,得到了众多知名用户的认可。Fundebug支持主流前端框架的bug监控,欢迎各位老铁体验!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏牛客网

多篇面经集合,你不容错过的干货!

  5. 写一个单例模式,答主写的是双检查锁单例,问了为什么用 Volatile,synchronize 移到 方法最外面会怎么样?

1172
来自专栏BeJavaGod

插件推荐 - twitter分布式主键id生成器与SID

推荐一个插件,那就是idworker,用了一年了,还是挺好用,先来说说干嘛的吧,鉴于现在主键的生成模式先来探讨一下 1、id自增:比较普遍,但是在数据备份恢复的...

4106
来自专栏牛客网

2018今日头条前端实习面经

1806
来自专栏王清培的专栏

.NET项目开发—浅谈面向接口编程、可测试性、单元测试、迭代重构(项目小结)

阅读目录: 1.开篇介绍 2.迭代测试、重构(强制性面向接口编程,要求代码具有可测试性) 2.1.面向接口编程的两个设计误区 2.1.1.接口的依赖倒置 ...

1989
来自专栏Java技术栈

重大利好,Dubbo 3.0要来了。

关于Dubbo的好消息,2018年1月8日,Dubbo创始人之一梁飞在Dubbo交流群里透露了Dubbo 3.0正在开工的重大消息。 Dubbo是阿里开源的分布...

44810
来自专栏牛客网

网易云音乐Java面经(共三面)

【每日一语】很多人都无从得知自己的天赋,因为找不到相信他们的老师。于是他们深信自己很笨。——《心灵捕手》

4831
来自专栏顶级程序员

关于Java面试,你应该准备这些知识点

来自:简书 占小狼 链接:http://www.jianshu.com/p/1b2f63a45476(点击尾部阅读原文前往) 链接:http://www.ji...

3706
来自专栏Crossin的编程教室

【每周一坑】特殊的生日

好吧,我在跳票的道路上又双叒叕前进了一步……今天终于厚着脸皮来更新【每“周”一坑】啦。感谢在后台孜孜不倦催促我的同学们。 在出题前,先插两句: 上次关于 Pyt...

27211
来自专栏互联网杂技

关于Java面试,你应该准备这些知识点

马老师说过,员工的离职原因很多,只有两点最真实: 钱,没给到位 心,受委屈了 当然,我是想换个平台,换个方向,想清楚为什么要跳槽,如果真的要跳槽,想要拿到一个理...

3717
来自专栏机器之心

放弃Python转向Go语言:我们找到了以下9大理由

选自Stream 作者:Thierry Schellenbach 机器之心编译 参与:黄小天、李亚洲 转用一门新语言通常是一项大决策,尤其是当你的团队成员中只有...

55211

扫码关注云+社区