Appearance
必须在数组方法的回调中使用return语句
禁止使用花括号和return
箭头函数参数必须使用括号包裹
箭头函数的箭头前后必须有空格
禁止使用其他块级作用域的var变量
推荐类方法使用this
函数必须有统一的返回值
构造函数必须调用super()
推荐使用花括号包裹代码块
推荐在switch语句中将default子句放在最后
推荐在switch语句中使用default分支
推荐将默认参数放在参数列表的最后
必须在点操作符前换行
推荐使用点表示法访问对象属性
推荐使用严格等于和严格不等于操作符
禁止for循环中的计数器错误方向
生成器函数的星号前必须有空格,后面不能有空格
必须在getter方法中返回值
推荐在模块顶层调用require
推荐将同一属性的getter和setter函数定义在一起
推荐在for-in循环中使用守卫语句
每个文件中只能有一个类
禁止使用alert, confirm, 和 prompt函数
禁止在Promise的executor函数中使用async函数
禁止在循环中使用await
禁止使用Buffer构造函数
禁止使用arguments.caller和arguments.callee
禁止在case/default子句中使用声明变量
禁止修改类声明的变量
禁止与-0进行比较
禁止在条件语句中使用赋值操作符
禁止使用可能与比较运算符混淆的箭头函数
禁止修改const声明的变量
禁止在条件中使用常量表达式
禁止在构造函数中返回值
禁止在正则表达式中使用控制字符
禁止使用debugger
禁止删除变量
禁止函数参数重复
禁止在类成员中使用重复的名称
禁止在同一个if-else-if链中出现重复的条件
禁止对象字面量中的重复键
禁止重复的case表达式
禁止在包含 return 语句的 if 块后出现 else 块
禁止在正则表达式中使用空字符类
禁止空函数
禁止使用空的解构模式
禁止空的代码块
禁止使用eval函数
禁止在catch语句中重新赋值异常参数
禁止扩展原生对象
禁止不必要的函数绑定
禁止不必要的布尔类型转换
禁止使用标签
禁止不必要的分号
禁止case语句落空
禁止省略浮点数中的0
禁止重写函数声明
禁止对全局变量赋值
为什么?
禁止修改导入的绑定
禁止在块级作用域中出现函数声明
禁止在 RegExp 构造函数中出现无效的正则表达式字符串
RegExp
禁止使用不规则的空白字符
禁止使用iterator
禁止标签与变量同名
禁止使用标签语句
禁止无用的代码块
禁止在循环中创建函数
禁止使用在运行时会丢失精度的数字字面量
禁止误导的字符类
禁止使用多个空格
禁止使用多行字符串
禁止使用new Function
禁止使用new require
禁止使用new操作符调用Symbol
禁止使用原始包装类型
禁止使用new创建对象后不赋值
禁止在字符串字面量中使用转义序列
禁止将全局对象作为函数调用
禁止使用八进制字面量
禁止对函数参数进行重新赋值
禁止在Node.js中使用字符串拼接路径
禁止在Promise执行器函数中返回值
禁止使用__proto__属性
禁止直接调用Object.prototype的方法
禁止重复声明变量
禁止在正则表达式中使用多个空格
禁止导出指定的名称
禁止使用特定的全局变量
禁止使用特定的对象属性
禁止在return语句中使用赋值语句
禁止在URL中执行js代码
禁止自我赋值
禁止自我比较
禁止使用逗号操作符
禁止setter函数返回值
禁止覆盖JavaScript中的特殊变量名
禁止变量名重复
禁止使用稀疏数组
禁止在普通字符串中使用模板字符串的占位符
禁止在super()之前使用this/super
禁止抛出字面量错误
禁止初始化变量为undefined
禁止使用未声明的变量
禁止出现容易引起误解的多行表达式
禁止出现只能循环一次的循环
禁止出现无法执行的代码
禁止在finally代码块中使用流程控制语句
禁止对关系运算符的左操作数进行取反操作
禁止在可能导致运行时错误的位置使用可选链
禁止无效表达式
禁止使用未被引用的标签
禁止未使用的变量
禁止在定义之前使用变量或函数
禁止无效的正则表达式反向引用
禁止无用的catch
禁止无用的计算属性键
禁止无用的字符串拼接
禁止无用的构造函数
禁止无用的转义
禁止无用的重命名
禁止无用的返回
禁止使用var
禁止使用void操作符
禁止使用with语句
推荐使用对象字面量简写语法
推荐使用箭头函数作为回调
推荐使用const声明不会被重新赋值的变量
推荐使用解构
推荐使用数字字面量
推荐Promise的reject方法中只抛出Error对象
推荐使用正则表达式字面量
推荐使用剩余参数
推荐使用扩展运算符
推荐使用模板字面量
必须在parseInt()函数中提供基数参数
必须在生成器函数中使用yield关键字
禁止在扩展运算符和它们的表达式之间添加空格
必须使用严格模式
创建Symbol时必须添加描述
模板字符串中的大括号内不能有空格
禁止与NaN进行比较
必须使用正确的typeof比较
必须将变量声明放在作用域顶部
必须将立即调用的函数表达式包裹在括号中
yield*表达式中*的后面必须有空格
yield*
*
禁止Yoda条件