Destructing
主要是针对函数和解构而言的要求
对象解构
- 当函数中使用传入对象的多个属性时,那么使用对象解构承接传入对象。报错类型,
requireObjectDestructing
。
数组解构
- 使用以下方式,否则,报错,
requireArrayDestructing
。
const [first,second] = arr1;
返回多个值,使用对象解构
- 使用数组解构会报错,
disableArrayDestructingReturn
。
function fn(){
// bad
return [first,second,third];
// good , 好处, 可以挑选对象部分属性使用
return {first,second,third};
}
const {first,third} = fn();
String
- 字符串使用单引号。报错,
quetos
。 - 字符个数少于100,不要换行。
- 使用模板字符链接字符串,不使用
+
链接,模板字符变量引用开始时没有空格。
prefer-template
template-curly-spacing
- 不使用
eval()
。 - 必要的时候,才使用转义字符。报错,
no-unless-escape
。
Functions
- 函数表达式,后边的匿名函数改为命名函数。报错,
func-style
。 - 匿名函数自调用需要外层有括号。报错,
wrap-iife
。
// good
(function () {}())
- 块级域中(if , while),不要直接定义函数,改为块级外部声明,内部使用。报错,
no-loop-func
。 - 如果必须定义函数,使用箭头函数。
- 函数参数不能是
arguments
。 - 不使用
arguments
,使用对象解构对实参进行获取。报错,prefer-rest-params
。
function fn(...args) {
}
- 使用参数默认值的方式,应对传入参数不合适情况,不再使用逻辑语句。逻辑语句缺点如下:
- 逻辑语句
a = a || 0
- 当a传进来为undefined或者null或者NaN时,错误也有错误的用法,而不是直接就修改
function fn(a = 0) {
}
- 注意默认值的副作用,当传入参数值时,默认值语句就不会执行,可能会造成一些错误。
- 有默认值的参数,尽量往后放。
- 不使用Function构造函数创建函数。报错,
no-new-func
。 - 关于函数的空格。报错类型
space-before-function-paren
space-before-block
//注意空格位置
function fn() {}
- 不改变参数,赋值给变量之后再改变。报错,
no-ressign-param
。 - 使用数组解构代替apply拆分数组的功能。报错,
prefer-spread
。 - 形参或着实参分行显示,注意一下要求
- 每一个变量一行
- 第一个和最后一个也不和括号在一起
- 参数最后一个加一个逗号