花了一天整理的,可能部分翻譯的有錯誤,後面會再校對一次javascript
規則說明:默認狀況下不會啓用任何規則。配置文件中的"extends":"eslint:recommended"
屬性能夠啓用一些默認的驗證規則,默認的規則在下表會用R表示出來java
使用--fix
命令能夠自動修復一些特定的規則(大部分爲空格類規則),下面用F表示node
0=off,1=warn, 2=error正則表達式
這些規則主要針對語法錯誤和邏輯錯誤express
參數 | 描述 | 備註 | 例子 |
---|---|---|---|
for-direction | for循環 須要往正確的方向循環,避免死循環 | 案例 | |
no-await-in-loop | 禁止循環中有 await | 案例 | |
no-compare-neg-zero | 禁止和 -0 比較 | R | 案例 |
no-cond-assign | 禁止在條件表達式使用賦值 | R | 案例 |
no-console | 禁止使用console | R | 案例 |
no-constant-condition | 禁止在條件中使用常量表達式 | R | 案例 |
no-control-regex | 禁止在正則中使用控制字符 | R | 案例 |
no-debugger | 禁止使用debugger | R F | 案例 |
no-dupe-args | 禁止在函數定義中傳入重複的參數 | R | 案例 |
no-dupe-keys | 禁止在對象字面量中使用重複的key | R | 案例 |
no-duplicate-case | 禁止在case中出現重複的標籤 | R | 案例 |
no-empty | 禁止塊語句中的內容爲空 | R | 案例 |
no-empty-character-class | 禁止正則表達式中的[]內容爲空 | R | 案例 |
no-ex-assign | 禁止給catch語句中的異常參數賦值 | R | 案例 |
no-extra-boolean-cast | 禁止沒必要要的bool轉換 | R F | 案例 |
no-extra-parens | 禁止不須要的括號 | F | 案例 |
no-extra-semi | 禁止多餘的分號 | R F | 案例 |
no-func-assign | 禁止重複的函數聲明 | R | 案例 |
no-inner-declarations | 禁止在塊語句中使用聲明(變量或函數) | R | 案例 |
no-invalid-regexp | 禁止無效的正則 | R | 案例 |
no-irregular-whitespace | 禁止不統一的空格 | R | 案例 |
no-obj-calls | 禁止重定義內置全局對象 | R | 案例 |
no-prototype-builtins | 禁止在對象上直接調用object.prototype方法 | 案例 | |
no-regex-spaces | 禁止在正則表達式字面量中使用多個空格 | R F | 案例 |
no-sparse-arrays | 禁止稀疏數組 | R | 案例 |
no-template-curly-in-string | 禁止在模板中使用不一樣的符號 | 案例 | |
no-unexpected-multiline | 禁止多行表達式 | R | 案例 |
no-unreachable | 禁止寫沒法執行的代碼(return,throw,contine,break) | R | 案例 |
no-unsafe-finally | 禁止在finally中使用return,throw,contine,break | R | 案例 |
no-unsafe-negation | 禁止在運算符左側執行關係運算 | R F | 案例 |
use-isnan | 禁止比較時使用NaN,只能用isNaN() | R | 案例 |
valid-jsdoc | 強制驗證jsdoc規則 | 案例 | |
valid-typeof | 強制使用合法的typeof的值 | R | 案例 |
這些規則是可以幫助你避免一些問題的最好方法api
參數 | 描述 | 備註 | 例子 |
---|---|---|---|
accessor-pairs | 強制在對象中使用getter/setter | 案例 | |
array-callback-return | 強制在數組方法的回調中執行return | 案例 | |
block-scoped-var | 強制使用它們定義的範圍內的變量 | 案例 | |
class-methods-use-this | 強制該類方法利用 this | 案例 | |
complexity | 強制設置一個循環的最大值 | 案例 | |
consistent-return | 要求return語句要麼始終有值要麼始終沒值 | 案例 | |
curly | 強制全部控制語句執行統一的括號風格 | F | 案例 |
default-case | switch語句中須要有default值 | 案例 | |
dot-location | 強制在點以前和以後執行一致的換行符 | F | 案例 |
dot-notation | 強制使用.符號,避免[] | F | 案例 |
eqeqeq | 使用 === 和 !== | F | 案例 |
guard-for-in | for in循環要用if語句過濾 | 案例 | |
no-alert | 禁止使用alert,confirm,prompt | 案例 | |
no-caller | 禁止使用arguments.caller或 arguments.callee | 案例 | |
no-case-declarations | 禁止在case子句中使用詞法聲明,必定要用,封裝在塊中 | R | 案例 |
no-div-regex | 禁止在正則表達式開頭用除法 | 案例 | |
no-else-return | if語句裏面有return,後面禁止跟else語句 | F | 案例 |
no-empty-function | 禁止空函數 | 案例 | |
no-empty-pattern | 禁止空的解構模式 | R | 案例 |
no-eq-null | 禁止用類型檢查運算符和null比較 | 案例 | |
no-eval | 禁止使用eval() | 案例 | |
no-extend-native | 禁止擴展native類型 | 案例 | |
no-extra-bind | 禁止非必要的函數綁定 | F | 案例 |
no-extra-label | 禁止非必要的label | F | 案例 |
no-fallthrough | 禁止switch穿透 | R | 案例 |
no-floating-decimal | 禁止省略浮點數中的0 | F | 案例 |
no-global-assign | 禁止對本地對象或只讀全局變量重定義 | R | 案例 |
no-implicit-coercion | 禁止隱式轉換 | F | 案例 |
no-implicit-globals | 禁止在全局範圍內聲明變量和函數 | 案例 | |
no-implied-eval | 禁止使用隱式eval | 案例 | |
no-invalid-this | 禁止無效的this,只能用在構造器,類,對象字面量 | 案例 | |
no-extra-label | 禁止非必要的label | F | 案例 |
no-iterator | 禁止使用__iterator__ 屬性 | 案例 | |
no-labels | 禁止標籤聲明 | 案例 | |
no-lone-blocks | 禁止非必要的嵌套塊 | F | 案例 |
no-loop-func | 禁止在循環中使用函數(若是沒有引用外部變量不造成閉包就能夠) | 案例 | |
no-magic-numbers | 禁止魔數字(硬寫到代碼裏的數字常量) | 案例 | |
no-multi-spaces | 禁止多個空格) | F | 案例 |
no-multi-str | 禁止多行字符串(不能用/換行) | 案例 | |
no-new | 禁止在使用new構造一個實例後不賦值 | 案例 | |
no-new-func | 禁止使用new Function | 案例 | |
no-new-wrappers | 禁止使用new建立包裝實例,new String new Boolean new Number | 案例 | |
no-octal | 禁止使用八進制數字 | R | 案例 |
no-octal-escape | 禁止使用八進制轉義序列 | 案例 | |
no-param-reassign | 禁止從新定義參數 | 案例 | |
no-proto | 禁止使用__proto__ | 案例 | |
no-redeclare | 禁止重複聲明變量 | R | 案例 |
no-restricted-properties | 禁止在一些特定的對象上的特定屬性 | 案例 | |
no-return-assign | return 語句中不能有賦值表達式 | 案例 | |
no-return-await | 禁止非必要的return await | 案例 | |
no-script-url | 禁止使用javascript:void(0) | R | 案例 |
no-self-assign | 禁止雙方徹底一致的任務 | R | 案例 |
no-self-compare | 禁止比較自身 | 案例 | |
no-sequences | 禁止使用逗號運算符 | 案例 | |
no-throw-literal | 禁止拋出字面量錯誤 throw "error"; | 案例 | |
no-unmodified-loop-condition | 禁止不變的循環條件 | 案例 | |
no-unused-expressions | 禁止無用的表達式 | 案例 | |
no-unused-labels | 禁止不用的label | R F | 案例 |
no-useless-call | 禁止非必要的call和apply | 案例 | |
no-useless-concat | 禁止沒必要要的鏈接文字或模板文字 | 案例 | |
no-useless-escape | 禁止沒必要要的轉義字符 | R | 案例 |
no-void | 禁止使用void | 案例 | |
no-warning-comments | 禁止有警告備註 | 案例 | |
no-with | 禁止使用with聲明 | 案例 | |
prefer-promise-reject-errors | 使用error對象做爲Promise駁回緣由 | 案例 | |
radix | parseInt必須指定第二個參數 | 案例 | |
require-await | 禁止async中無await表達式 | 案例 | |
vars-on-top | var必須放在做用域頂部 | 案例 | |
wrap-iife | 當即執行函數表達式的小括號風格 | F | 案例 |
yoda | 禁止尤達條件 | F | 案例 |
這些規則是可以幫助你避免一些問題的最好方法數組
參數 | 描述 | 備註 | 例子 |
---|---|---|---|
strict | 使用嚴格模式 | F | 案例 |
這些規則與變量聲明有關promise
參數 | 描述 | 備註 | 例子 |
---|---|---|---|
init-declarations | 聲明時必須賦初值 | 案例 | |
no-catch-shadow | 禁止catch子句參數與外部做用域變量同名 | 案例 | |
no-delete-var | 禁止刪除變量 | R | 案例 |
no-label-var | 禁止label名與var聲明的變量名相同 | 案例 | |
no-restricted-globals | 禁止指定的全局變量 | 案例 | |
no-shadow | 禁止外部做用域中的變量與它所包含的做用域中的變量或參數同名 | 案例 | |
no-shadow-restricted-names | 嚴格模式中規定的限制標識符不能做爲聲明時的變量名使用 | 案例 | |
no-undef | 不能有未定義的變量,除非在/global /註釋中 | R | 案例 |
no-undef-init | 禁止將變量初始化爲undefined | F | 案例 |
no-undefined | 禁止使用undefined做爲標識符 | 案例 | |
no-unused-vars | 禁止未使用的變量 | R | 案例 |
no-use-before-define | 禁止在定義以前使用變量 | 案例 |
這些規則與在Node.js中運行的代碼相關聯,或與使用CommonJS的瀏覽器相關:瀏覽器
參數 | 描述 | 備註 | 例子 |
---|---|---|---|
callback-return | 避免屢次調用回調 | 案例 | |
global-require | 須要將require()調用放置在模塊頂部 | 案例 | |
handle-callback-err | 在回調中須要錯誤處理 | 案例 | |
no-buffer-constructor | 禁止使用Buffer()構造函數 | 案例 | |
no-mixed-requires | 不容許調用與常規變量聲明混合 | 案例 | |
no-new-require | 禁止使用new require | 案例 | |
no-path-concat | 禁止使用__dirname和__filename鏈接字符串 | 案例 | |
no-process-env | 禁止使用process.env | 案例 | |
no-process-exit | 禁止使用process.exit() | 案例 | |
no-process-env | 禁止使用process.env | 案例 | |
no-restricted-modules | 禁止經過require加載指定的模塊,用了會報錯 | 案例 | |
no-sync | nodejs 禁止同步方法 | 案例 |
這些規則主要是關於代碼風格的,主觀因素較強閉包
參數 | 描述 | 備註 | 例子 |
---|---|---|---|
array-bracket-newline | 強制在數組的頭尾括號以前執行換行 | F | 案例 |
array-bracket-spacing | 強制在數組括號內執行一致的間隔 | F | 案例 |
array-element-newline | 強制在每一個數組元素以後執行換行符 | F | 案例 |
block-spacing | 強制在單行塊內實施一致的間距 | F | 案例 |
brace-style | 強制塊的括號風格統一 | 案例 | |
camelcase | 強制駝峯命名 | 案例 | |
capitalized-comments | 強制或禁止註釋的第一個字母大寫 | F | 案例 |
comma-dangle | 逗號風格,換行時在行首仍是行尾 | F | 案例 |
comma-spacing | 強制逗號先後的空格 | F | 案例 |
comma-style | 塊的括號風格統一 | 案例 | |
computed-property-spacing | 強制在計算屬性括號內一致的間距 | F | 案例 |
consistent-this | 強制規定this別名 | 案例 | |
eol-last | 強制添加或禁止在文件末尾的換行 | F | 案例 |
func-call-spacing | 強制添加或禁止在函數標識符與其調用之間的間距 | F | 案例 |
func-name-matching | 要求函數名稱與其分配到的變量或屬性的名稱相匹配 | 案例 | |
func-names | 強制添加或禁止命名函數表達式 | 案例 | |
func-style | 強制統一使用函數聲明或表達式 | 案例 | |
id-blacklist | 禁止指定的標識符 | 案例 | |
id-length | 強制標識符長度最小和最大值 | 案例 | |
id-match | 要求標識符與指定的正則表達式匹配 | 案例 | |
indent | 強制統一的縮進 | F | 案例 |
jsx-quotes | 強制在JSX屬性中一致地使用雙引號或單引號 | F | 案例 |
key-spacing | 強制在對象文字屬性中強制實現鍵和值之間的一致間距 | F | 案例 |
keyword-spacing | 強制在關鍵字先後執行一致的間距 | F | 案例 |
line-comment-position | 強制規定註釋的位置 | 案例 | |
linebreak-style | 強制換行風格 | F | 案例 |
lines-around-comment | 強制註釋先後空行 | F | 案例 |
max-depth | 強制嵌套的最大深度 | 案例 | |
max-len | 強制字符串最大長度 | 案例 | |
max-lines | 強制每一個文件的最大行數 | 案例 | |
max-nested-callbacks | 強制最大深度,回調能夠嵌套 | 案例 | |
max-params | 強制函數最大參數值 | 案例 | |
max-statements | 強制在功能塊中容許的最大數量的語句 | 案例 | |
max-statements-per-line | 強制每行容許的最大數量的語句 | 案例 | |
multiline-ternary | 強制三元表達式換行 | 案例 | |
new-cap | 要求構造函數名稱以大寫字母開頭 | 案例 | |
new-parens | new時,沒有入參的話必須加小括號 | F | 案例 |
newline-per-chained-call | 鏈式調用後每次都須要換行符 | 案例 | |
no-array-constructor | 禁止使用數組構造器 | 案例 | |
no-bitwise | 禁止使用按位運算符 | 案例 | |
no-continue | 禁止使用continue | 案例 | |
no-inline-comments | 禁止代碼後的內聯註釋 | 案例 | |
no-lonely-if | 禁止else語句內只有if語句 | F | 案例 |
no-mixed-operators | 禁止混合二進制運算符 | 案例 | |
no-mixed-spaces-and-tabs | 禁止混合空格和製表符縮進 | R | 案例 |
no-multi-assign | 禁止使用鏈式賦值表達式 | 案例 | |
no-multi-assign | 禁止使用鏈式賦值表達式 | 案例 | |
no-multiple-empty-lines | 禁止多行空格 | F | 案例 |
no-negated-condition | 禁止否認條件 | 案例 | |
no-nested-ternary | 禁止嵌套的三元表達式 | 案例 | |
no-new-object | 禁止使用new Object() | 案例 | |
no-plusplus | 禁止使用一元運算符++和-- | 案例 | |
no-restricted-syntax | 禁止指定語法 | 案例 | |
no-tabs | 禁止全部tabs | 案例 | |
no-ternary | 禁止使用三元表達式 | 案例 | |
no-trailing-spaces | 禁止在行尾有空格 | F | 案例 |
no-underscore-dangle | 禁止在標識符中用下劃線 | 案例 | |
no-unneeded-ternary | 在簡單判斷中,禁止使用三元表達式 | F | 案例 |
no-whitespace-before-property | 禁止在屬性前加空白 | F | 案例 |
nonblock-statement-body-position | 強制單行聲明的位置 | F | 案例 |
object-curly-newline | 強制在大括號內執行一致的換行符 | F | 案例 |
object-curly-spacing | 強制在大括號內統一的空格 | F | 案例 |
object-property-newline | 強制將對象屬性放在不一樣的行上 | F | 案例 |
one-var | 強制變量在函數中一塊兒聲明或單獨聲明 | 案例 | |
one-var-declaration-per-line | 強制單行聲明的位置 | F | 案例 |
operator-assignment | 在可能的狀況下強制或禁止賦值運算符的簡寫 | F | 案例 |
operator-linebreak | 強制鏈接符統一的換行 | F | 案例 |
padded-blocks | 強制或禁止在塊內填充空格 | F | 案例 |
padding-line-between-statements | 強制或禁止在語句之間填充空格 | F | 案例 |
quote-props | 強制對象字面量中的屬性名雙引號 | F | 案例 |
quotes | 強制統一使用反引號,雙引號或單引號 | F | 案例 |
require-jsdoc | 須要JSDoc 註釋 | 案例 | |
semi | 強制語句分號結尾 | F | 案例 |
semi-spacing | 強制分號先後空格 | F | 案例 |
semi-style | 強制分號位置 | F | 案例 |
sort-keys | 要求對象鍵進行排序 | 案例 | |
sort-vars | 要求同一聲明塊中的變量進行排序 | 案例 | |
space-before-blocks | 強制塊區域內統一的間隔 | F | 案例 |
space-before-function-paren | 強制在Function括號以前執行統一的間距 | F | 案例 |
space-in-parens | 強制在括號內用統一的間距 | F | 案例 |
space-infix-ops | 中綴操做符周圍須要有空格 | F | 案例 |
space-unary-ops | 強制在一元操做員以前或以後有統一的間距 | F | 案例 |
spaced-comment | 強制在註釋中的//或/ *以後用統一的間距 | F | 案例 |
switch-colon-spacing | 在switch語句的冒號附近加間隔 | F | 案例 |
template-tag-spacing | 強制或禁止模板標籤與其文字之間的間距 | F | 案例 |
unicode-bom | 強制或禁止Unicode字節順序標記(BOM) | F | 案例 |
wrap-regex | 正則表達式字面量用小括號包起來 | F | 案例 |
這些規則涉及ES6(ES2015):
參數 | 描述 | 備註 | 例子 |
---|---|---|---|
arrow-body-style | 容許箭頭函數 | F | 案例 |
arrow-parens | 箭頭函數用小括號括起來 | F | 案例 |
arrow-spacing | 箭頭的前/後括號空格 | F | 案例 |
constructor-super | 在構造函數中須要super()調用 | R | 案例 |
generator-star-spacing | 在生成器函數中的*操做符周圍保持統一的間距 | F | 案例 |
no-class-assign | 禁止從新分配Class成員 | R | 案例 |
no-confusing-arrow | 在可能會與對比運算符混淆的地方禁止箭頭功能 | F | 案例 |
no-const-assign | 禁止從新分配常量變量 | R | 案例 |
no-dupe-class-members | 禁止重複的class成員 | R | 案例 |
no-duplicate-imports | 禁止重複模塊導入 | 案例 | |
no-new-symbol | 禁止在Symbol對象用new操做符 | R | 案例 |
no-restricted-imports | 經過import加載時禁止指定的模塊 | 案例 | |
no-this-before-super | 在構造函數中調用super()以前禁止用this | R | 案例 |
no-useless-computed-key | 禁止對象文字中沒必要要的計算屬性鍵 | F | 案例 |
no-useless-constructor | 禁止沒必要要的構造函數 | 案例 | |
no-useless-rename | 禁止沒必要要的重命名 | F | 案例 |
no-var | 用let,const代替var | F | 案例 |
object-shorthand | 強制或禁止對象文字的方法和屬性簡寫語法 | F | 案例 |
prefer-arrow-callback | 須要箭頭功能做爲回調 | F | 案例 |
prefer-const | 永不改變的變量用const | F | 案例 |
prefer-destructuring | 須要從數組和/或對象中進行解構 | 案例 | |
prefer-numeric-literals | 禁止parseInt()支持二進制,八進制和十六進制文字 | F | 案例 |
prefer-rest-params | 須要reset參數 | 案例 | |
prefer-spread | 須要...操做符替代.apply() | F | 案例 |
prefer-template | 須要模板語法而不是字符串鏈接 | F | 案例 |
require-yield | 生成器函數必須有yield | R | 案例 |
rest-spread-spacing | 強制rest和展開運算符的間距 | F | 案例 |
sort-imports | 強制在模塊中執行排序的導入聲明 | F | 案例 |
symbol-description | 須要Symbol說明 | 案例 | |
template-curly-spacing | 強制或禁止模板字符串的嵌入式表達式周圍有空格 | F | 案例 |
yield-star-spacing | 強制或禁止的yield *中的間距 | F | 案例 |
這些規則已經被新的規則替換,懶得寫了
舊版本ESLint的這些規則已被更新的規則所取代,懶得寫了