ECMAScript 6
块级作用域
- let取代var
-
字符串
-
结构赋值
使用数组成员变量时优先使用解构赋值
- 函数的参数如果是对象的成员,优先使用解构赋值
如果函数返回多个值,优先使用对象的解构赋值,而不是数组的解构赋值
对象
单行定义的对象,最后一个成员不以逗号结尾
- 多行定义的对象,最后一个成员以逗号结尾
- 对象尽量静态化,一旦定义,就不得随意添加新的属性
- 如果对象的属性名是动态的,可以在创造对象的时候,使用属性表达式定义
-
数组
使用扩展运算符(…)拷贝数组
-
函数
立即执行函数可以写成箭头函数的形式
- 所有配置项都应该集中在一个对象,放在最后一个参数,布尔值不可以直接作为参数
- 不要在函数体内使用 arguments 变量,使用 rest 运算符(…)代替
-
Map结构
只有模拟现实世界的实体对象时,才使用 Object。如果只是需要key: value的数据结构,使用 Map 结构
Class
总是用 Class,取代需要 prototype 的操作
使用extends实现继承,因为这样更简单,不会有破坏instanceof运算的危险
模块
ES6 模块语法是 JavaScript 模块的标准写法,坚持使用这种写法,取代 Node.js 的 CommonJS 语法
- 如果模块只有一个输出值,就使用export default
- 如果模块有多个输出值,除非其中某个输出值特别重要,否则建议不要使用export default
- 即多个输出值如果是平等关系,export default与普通的export就不要同时使用
- 如果模块默认输出一个对象,对象名的首字母应该大写,表示这是一个配置值对象
