[2017专题] 从 ES5 升级概览

并非新内容,而是搬运过去的专题。

从 ES5 升级概览

哪里爽

  • ES6 核心特性 详细地比较了升级前后的代码部分

哪里坑

  • You-don't Know JS 的 ES6 部分 对新的语言特性与边界介绍得不厌其详
  • ES6新语法疑点简析 简述了一些新标准可能会造成疑惑的地方

哪里慢

  • Six-speed 比较了 ES6 与 ES5 的等效实现在各种上下文中的速度差异

哪兼容

  • Test262 为官方的测试套件
  • ES6 Compatibility Table for browsers 为浏览器端兼容性测试
  • ES6 Compatibility Table for nodejs 为 Nodejs 端兼容性测试

一句话子特性

语法

  • constlet解决了几乎所有的var副作用:没有提升行为、全局影响,新增了块级作用域,禁止了重新声明
  • 解构可用于很多像 Promise 单参链式调用的场景;Spread & Rest 操作符简化了数组和对象的构成和解构
  • 模板字面量语法让字符串的构成更加直观

流程

  • Promise 帮助我们用链式调用的形式梳理多重异步调用与流程控制
  • Generator 是一个语言级别的协程实现
  • Async Await 以同步形式书写异步代码,简洁而一目了然
  • for..of 和迭代器的使用让集合类容器可以被更直观地迭代

函数

  • 集合类扩展一部分是提升性能表现的 Typed Arrays,另一部分提升了代码的表现力如 Map、Set、WeakMap 和 WeakSet
  • Arrow Functions 帮助我们在声明匿名函数的同时固化 this 指向
  • Class 提供了更清晰的原型链和 Constructor 定义
  • Symbol 为对象提供了一种隐藏属性,不会被迭代出来,不能使用已有的反射工具获取,也不与对象中的其他属性冲突
  • Proxy 适用于更加简洁的观察者模式实现、无限链式调用等代码
  • Reflect 是包装得更加完善的反射 API 的集合

你可能感兴趣的:(前端)