JavaScript 一团乱,这是好事
为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。
JavaScript从不移除旧的特性,新版本总是向后兼容。我希望我们能够把那些重复的旧的特性清理一下,但是保持兼容有太多的好处。我在本文会解释。
1. 向后兼容的优势
- 迁移到新的语言版本是一件轻而易举的事情。举个例子,如果你使用ES6,所有旧代码无需任何改动。
- 只有ES模块很难采用,因为它破坏了向后兼容性。
- 避免了代码版本化。如果你允许一些代码是“旧”的,有一些是“新”的:
- 语言引擎和工具变得更加复杂
- 开发人员需要小心应对不同的版本
- 你不能随意移动代码了(如果代码基础库是混合的)
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 一团乱,这是好事相关推荐
- 原生JavaScript实现团购——限时抢
原生JavaScript实现团购--限时抢 一,HTML代码 <div class="content3"> <div class="time" ...
- 你的房间总是一团乱吗?
你的房间总是一团乱吗? AMY CHANG CHIEN 2019年1月8日 Getty Images 关键词:clutter 杂乱.混乱 你有乱丢东西的毛病吗?或是常感到被所有的东西淹没?如果有的话, ...
- 吹得这么牛皮的RPC,到底是个什么鬼?该如何实现呢?
点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 99套Java企业级实战项目 4000G架构师资料 作者:张丰哲 原文:https://www.jianshu.com ...
- 手把手,教你如何逐步提高JavaScript的编码能力?
全文共5024字,预计学习时长15分钟 来源:Pexels 今天,小芯给大家分享一些提高JavaScript编码能力的应用方法,学习并运用到实践中,你也可以成为编码熟练工哟~ 编辑器 目前,编辑器种类 ...
- JavaScript函数式编程(一)\(二)\(三)
JavaScript函数式编程(一) Starkwang 前端工程师@腾讯 / Node.js Collaborator 一.引言 说到函数式编程,大家可能第一印象都是学院派的那些晦涩难懂的代码,充满 ...
- HTML+CSS大作业——仿团购商城(1页) 简单个人网页设计作业 静态HTML旅行主题网页作业 DW个人网站模板下载 大学生简单个人网页作品代码 个人网页制作 学生个人网页Dreamwe
HTML5期末大作业 文章目录 HTML5期末大作业 一.作品展示 二.文件目录 三.代码实现 四.学习资料 一.作品展示 二.文件目录 三.代码实现 <!doctype html> &l ...
- 一个非常棒的jQuery 评分插件--好东西要分享
现在做网页已经不仅限于实现功能了,更多的是要实现功能的同时追求更加美观的实现.比如页面上让用户评分的功能,你完全可以放5个RdioButton让用户选择分数,也可以用DropDownList来实现,但 ...
- 程序员35岁不转型就退休,是真的吗?
周六下午,DevOps群里,有人贴出来这么一张图: 据说,这张图来自于谷歌,Google程序员之间存在这一条鄙视链,站在顶端的是C++工程师,其次是Java工程师,再次是Python工程师,接下来是J ...
- [转帖]USB-C和Thunderbolt 3连接线你搞懂了吗?---没搞明白.
USB-C和Thunderbolt 3连接线你搞懂了吗? 2018年11月25日 07:30 6318 次阅读 稿源:威锋网 3 条评论 按照计算行业的风潮,USB Type-C 将会是下一代主流的接 ...
最新文章
- 接口测试要如何做数据准备
- TIOBE 5 月编程语言排行榜:Python、C++竞争白热化,Objective-C已沦为小众语言
- getopt和getopt_long的使用
- java web系统拆分_Java系统中如何拆分同步和异步
- 第十三章 数据库支持
- MapReduce二次排序
- Iptables命令使用举例
- 基于sigmoid的文本多标签分类模型代码实现
- python设置ini文件中的值_5分钟掌握Python中常见的配置文件
- Object.preventExtensions()使用技巧
- 【OpenCV学习笔记】【函数学习】四(origin+imageData+cvcopy()函数+CvMemStorage 类型+CvPoint类型)
- html5 怎么入门,初学HTML5 从入门到精通你需要懂得这些
- 如何在物理机上安装Centos操作系统(实体机物理机)
- opencv python 识别图形轮廓
- onlyoffice 自动保存_onlyoffice服务在线编辑文档保存解析
- IP协议详解之IPv6头部结构简介
- 信息通信网络机务员三级(高级)复习知识点
- USB 输入,集成OVP过压保护锂电池充电芯片产品-19号电路板
- ftp服务器型号,ftp服务器的类型及其特点
- Logger日志文件记录