Classes and Constructor
- 使用class创建类,其中有方法。避免使用prototype和构造函数仿造类。
- 使用extends进行继承。
- 类中方法使用
return this
实现链式调用。
- 可以重写
toString()
方法,不过需要注意副影响。
- 以下形式的构造函数是不必要的,class中自带默认构造函数。报错,
no-unless-constructor
。
- 类成员不能重复。因为不支持重载。
Modules
- 使用
import or export
引入或者导出模块,引入模块时使用对象解构。
- 当引入模块所有导出时,不要使用统配符进行引入。
- 不要将引入模块和导出模块写在一起。
- 从一个模块的引入,一次写完。完全引用和对象解构的引用可以写在一起。
- 不要导出变量,要导出常量。报错,
import/no-mutable-export
。
- 只有一个export时,使用default。报错,
import/prefer-default-export
。
- 将全部import写在模块开始的位置。报错,
import/first
。
- 对象解构时,有多个属性可以写多行。
- 不允许
Webpack loader syntax
。报错,import/no-webpack-loader-syntax
。
import {es6} from './module01'; // 不需要后缀名js
export default es6;
// bad,
import * as obj01 from './module01';
// good
import allObj01 from './module01';
//OK
import allObj01,{es6,es5} from './module01';
// error
import fooSass from 'css!sass!foo.scss';
// good , 引入css等样式表文件模块
import fooSass from 'foo.scss';
Iterators and Generators
Properties
- 当用变量选取对象属性时,使用中括号。当用字符串选取对象属性是,使用
obj.property
的方法。