eslint V4.1.1 規則簡介

eslint V4.1.1 規則簡介

花了一天整理的,可能部分翻譯的有錯誤,後面會再校對一次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 and CommonJS

這些規則與在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 案例

ECMAScript 6

這些規則涉及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的這些規則已被更新的規則所取代,懶得寫了

刪除列表

相關文章
相關標籤/搜索