并非新内容,而是搬运过去的专题。
从 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 端兼容性测试
一句话子特性
语法
-
const
和let
解决了几乎所有的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 的集合
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。