Variables
-
const
始终使用const声明变量,没有const
或let
或var
声明为全局变量。前者报错,prefer-const
。后者报错,no-undef
。 - 不使用
,
的方式声明多个变量,应该分别声明。报错,one-var
。 - 按照
const
再let
的方式,将变量进行排序。 - 也需要注意,在合适的地方声明变量,不一定要提到最前边。
- 不适用连等的方式声明。
- 避免使用自增或者自减,容易出问题。报错,
no-plusplus
。
Hoisting
声明变量的使用方式
预解析过程,将var声明的变量提至变量所在作用域最前方。但是let,const有了新的概念:TDZ。
-
在同一作用域内不能声明两次同名变量。否则报错。
-
let和const声明的变量不会提升至作用域最前方。
-
函数表达式不能先使用再定义。
-
当函数表达式后边不是匿名函数即有自己的函数名,在函数表达式外部只能使用变量名,在函数内部可以使用变量名和函数名。
-
函数定义,则可以先使用后定义。
Comparison Operators and Equality
- 优先使用
===
和!==
。报错类型,eqeqeq
。 - 逻辑运算符,
&&
、||
,在比较非布尔类型时,会进行强制(coercion)类型装换。规则如下:
- Number。0、NaN为false,其他为true。
- String。空字符串为false,其他为true。
- Object。全部为true。
- null、undefined为false。
- 缩写判断语句时,注意数字和字符串的判断语句不能缩写。
- 当使用以下词汇时,需要在case或者default后边添加上花括号。报错类型,
no-case-declarations
。
- let
- const
- function
- class
- 三目运算不应该嵌套,最好单行写。
- 避免不必要的三目运算符。
Blocks
- 块级花括号需要多行。
- if判断语句中的else需要和if花括号共处一行。报错类型,
brace-style
。
// 注意 if 语句的空格
if () {
} else (
)
Comments
- 使用
/**...*/
进行多行注释。 - 使用单行注释需要另起一行,同时注释前空一行。
- 无论单双行注释在该行开始的时候都需要空一格,方便使用。报错类型,
spaced-comment
。 - 当在代码中找到错误需要其他人员改动,使用注释
// FIXME: error
。 - 当对错误找到解决办法,使用注释
// TODO: how to fix
。
网友评论