eslint规则解读
# eslint规则解读
# 什么是 ESLint ?
ESLint 是在 ECMAScript/JavaScript 代码中识别和报告模式匹配的工具
它的目标是保证代码的一致性和避免错误。
# 优点
团队协作时,团队的代码风格统一,能够大大减少沟通成本。
# 细说规则
# 1.‘no-cond-assign’
规则细节:
这条规则不允许在试验条件不明确赋值运算符if,for,while,和do...while语句。 错误示范:
if (user.jobTitle = "manager") {
// user.jobTitle is now incorrect
}
正确示范:
var x;
if (x === 0) {
var b = 1;
}
# 2.‘no-console’
规则细节:
此规则禁止调用console对象的方法。 错误示范:
console.log("Made it here.");
console.error("That shouldn't have happened.");
正确示范:
console.log("Hello world!");
3.'comma-dangle' : [1,"always-multiline"]
// 数组和对象键值对最后一个逗号, never参数:不能带末尾的逗号,
// always参数:必须带末尾的逗号,
// always-multiline:多行模式必须带逗号,单行模式不能带逗号
4.'no-debugger' // 禁用 debugger
5.'no-dupe-args' // 禁止 function 定义中出现重名参数
6.'no-dupe-keys' // 禁止对象字面量中出现重复的 key
7.'no-duplicate-case' // 禁止重复的 case 标签
8.'no-empty' // 禁止空语句块
9.'no-extra-boolean-cast' // 禁止不必要的布尔转换
10.'no-extra-parens' // 禁止不必要的括号 //(a * b) + c;//报错
11.'no-extra-semi' // 禁止不必要的分号
12.'no-func-assign' // 禁止对 function 声明重新赋值
13.'no-irregular-whitespace' // 禁止在字符串和注释之外不规则的空白
14.'no-regex-spaces' // 禁止正则表达式字面量中出现多个空格
15.'no-unexpected-multiline' // 禁止出现令人困惑的多行表达式
16.'array-callback-return' // 强制数组方法的回调函数中有 return 语句
17.'eqeqeq' // 使用 === 替代 == allow-null允许null和undefined==
18.'global-require' // 要求 require() 出现在顶层模块作用域中
19.'max-len' // 强制一行的最大长度
20.'no-shadow' // 禁止 var 声明 与外层作用域的变量同名
21.'no-return-assign' // 禁用指定的通过 require 加载的模块
22.'no-mixed-operators' // 禁止混合使用不同的操作符
23.'camelcase' // 双峰驼命名格式
24.'no-restricted-globals' // 禁用特定的全局变量
25.'no-restricted-syntax' // 禁止使用特定的语法
26.'guard-for-in' // 要求 for-in 循环中有一个 if 语句
27.'no-unused-vars' // 禁止出现未使用过的变量
28.'no-param-reassign' // 不允许对 function 的参数进行重新赋值
29.'func-names' // 强制使用命名的 function 表达式
30.'consistent-return' // 要求 return 语句要么总是指定返回的值,要么不指定
31.'no-plusplus' // 禁止使用一元操作符 ++ 和 --
32.'no-undef' // 禁用未声明的变量,除非它们在 /*global */ 注释中被提到
33.'no-continue' // 禁用 continue 语句
34.'no-loop-func' // 禁止在循环中出现 function 声明和表达式
35.'no-nested-ternary' // 不允许使用嵌套的三元表达式
36.'no-sequences' // 禁用逗号操作符
36.'no-unused-expressions' // 禁止出现未使用过的表达式
37.'prefer-rest-params' // 建议使用rest parameters而不是arguments
38.‘no-alert’ // 禁用 alert、confirm 和 prompt
39.‘no-underscore-dangle’ // 禁止标识符中有悬空下划线_bar
40.‘radix’ // 强制在parseInt()使用基数参数
41.‘no-prototype-builtins’ // 禁止直接使用 Object.prototypes 的内置属性
42.‘no-script-url’ // 禁止使用 javascript: url