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

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.

  • 章节:一个JavaScript:在ES6中避免版本化
  • 章节:ES6的核心特性(哪些ES5的特性被更好的ES6特性替代)
  • 章节:Async函数
  • 博客:一种不同的角度去理解JavaScript中的this

关于Fundebug

Fundebug专注于JavaScript、微信小程序、小游戏BUG监控,自从2016年双十一正式上线,Fundebug已经服务了一年半时间,累计处理了5亿+错误事件,得到了众多知名用户的认可。Fundebug支持主流前端框架的bug监控,欢迎各位老铁体验!

>>>>阅读全文

JavaScript 一团乱,这是好事相关推荐

  1. 原生JavaScript实现团购——限时抢

    原生JavaScript实现团购--限时抢 一,HTML代码 <div class="content3"> <div class="time" ...

  2. 你的房间总是一团乱吗?

    你的房间总是一团乱吗? AMY CHANG CHIEN 2019年1月8日 Getty Images 关键词:clutter 杂乱.混乱 你有乱丢东西的毛病吗?或是常感到被所有的东西淹没?如果有的话, ...

  3. 吹得这么牛皮的RPC,到底是个什么鬼?该如何实现呢?

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 99套Java企业级实战项目 4000G架构师资料 作者:张丰哲 原文:https://www.jianshu.com ...

  4. 手把手,​教你如何逐步提高JavaScript的编码能力?

    全文共5024字,预计学习时长15分钟 来源:Pexels 今天,小芯给大家分享一些提高JavaScript编码能力的应用方法,学习并运用到实践中,你也可以成为编码熟练工哟~ 编辑器 目前,编辑器种类 ...

  5. JavaScript函数式编程(一)\(二)\(三)

    JavaScript函数式编程(一) Starkwang 前端工程师@腾讯 / Node.js Collaborator 一.引言 说到函数式编程,大家可能第一印象都是学院派的那些晦涩难懂的代码,充满 ...

  6. HTML+CSS大作业——仿团购商城(1页) 简单个人网页设计作业 静态HTML旅行主题网页作业 DW个人网站模板下载 大学生简单个人网页作品代码 个人网页制作 学生个人网页Dreamwe

    HTML5期末大作业 文章目录 HTML5期末大作业 一.作品展示 二.文件目录 三.代码实现 四.学习资料 一.作品展示 二.文件目录 三.代码实现 <!doctype html> &l ...

  7. 一个非常棒的jQuery 评分插件--好东西要分享

    现在做网页已经不仅限于实现功能了,更多的是要实现功能的同时追求更加美观的实现.比如页面上让用户评分的功能,你完全可以放5个RdioButton让用户选择分数,也可以用DropDownList来实现,但 ...

  8. 程序员35岁不转型就退休,是真的吗?

    周六下午,DevOps群里,有人贴出来这么一张图: 据说,这张图来自于谷歌,Google程序员之间存在这一条鄙视链,站在顶端的是C++工程师,其次是Java工程师,再次是Python工程师,接下来是J ...

  9. [转帖]USB-C和Thunderbolt 3连接线你搞懂了吗?---没搞明白.

    USB-C和Thunderbolt 3连接线你搞懂了吗? 2018年11月25日 07:30 6318 次阅读 稿源:威锋网 3 条评论 按照计算行业的风潮,USB Type-C 将会是下一代主流的接 ...

最新文章

  1. 接口测试要如何做数据准备
  2. TIOBE 5 月编程语言排行榜:Python、C++竞争白热化,Objective-C已沦为小众语言
  3. getopt和getopt_long的使用
  4. java web系统拆分_Java系统中如何拆分同步和异步
  5. 第十三章 数据库支持
  6. MapReduce二次排序
  7. Iptables命令使用举例
  8. 基于sigmoid的文本多标签分类模型代码实现
  9. python设置ini文件中的值_5分钟掌握Python中常见的配置文件
  10. Object.preventExtensions()使用技巧
  11. 【OpenCV学习笔记】【函数学习】四(origin+imageData+cvcopy()函数+CvMemStorage 类型+CvPoint类型)
  12. html5 怎么入门,初学HTML5 从入门到精通你需要懂得这些
  13. 如何在物理机上安装Centos操作系统(实体机物理机)
  14. opencv python 识别图形轮廓
  15. onlyoffice 自动保存_onlyoffice服务在线编辑文档保存解析
  16. IP协议详解之IPv6头部结构简介
  17. 信息通信网络机务员三级(高级)复习知识点
  18. USB 输入,集成OVP过压保护锂电池充电芯片产品-19号电路板
  19. ftp服务器型号,ftp服务器的类型及其特点
  20. Logger日志文件记录

热门文章

  1. 这,这,是个神人,我喜欢
  2. python day9
  3. 【云速建站】购买前的指导
  4. 零基础学 MySQL
  5. 玩转CVM:Web服务搭建
  6. 我等到花儿也谢了(国语)铃声 我等到花儿也谢了(国语)手机铃声...
  7. 《矿山经济学》在线平时作业2
  8. Rust中文社区上线了在线中文论坛
  9. SQL 查询整型字段值和十六进制相互转换
  10. DSP2837d双核调试