字數:6190javascript
閱讀時間:30分鐘java
Standard規範+Angular規範集合git
"indent": ["error", 4]
規定使用幾個空格進行縮進。第二個參數表示空格的個數,默認是2個,咱們這個設置的是四格。github
"block-spacing": ["error", "always"]
規定單行代碼兩邊加空格。第二個參數有"always"、"never",默認值爲"always",表示須要至少一個空格,"never"表示不須要空格。代碼示例以下:正則表達式
function foo () {return true} // ✗ avoid function foo () { return true } // ✓ ok
"brace-style": ["error", "1tbs", { "allowSingleLine": true }]
規定 「else」 關鍵字要與花括號保持在同一行。第二個參數表示不一樣的規則風格,可取"1tbs"、「stroustrup」、「allman」三種風格。第三個參數表示是否容許大括號在同一行,默認值爲 「false」。代碼示例以下:express
// ✓ ok if (condition) { // ... } else { // ... } // ✗ avoid if (condition) { // ... } else { // ... }
"comma-spacing": ["error", { "before": false, "after": true }]
規定逗號後面必須添加空格。第二個參數用來設置逗號前和逗號後是否添加空格。代碼示例以下:api
// ✓ ok var list = [1, 2, 3, 4] function greet (name, options) { ... } // ✗ avoid var list = [1,2,3,4] function greet (name,options) { ... }
"curly": ["error", "multi-line"]
規定多行 if 語句的的括號不能省略。第二個參數配置那些場景會報錯,可取值「all」、「multi」、「multi-line」、「multi-or-nest」、「consistent」。這裏「multi-line」表示多行代碼不能省略。代碼示例以下:數組
// ✓ ok if (options.quiet !== true) console.log('done') // ✓ ok if (options.quiet !== true) { console.log('done') } // ✗ avoid if (options.quiet !== true) console.log('done')
"dot-location": ["error", "property"]
規定點號操做符須與屬性需在同一行。第二個參數配置點的位置,取值「property」和「object」。「property」表示點與屬性同一行,「object」表示點與對象同一行。代碼示例以下:promise
console. log('hello') // ✗ avoid console .log('hello') // ✓ ok
"eol-last": "error"
規定文件末尾空一行,以防文件解析錯誤。緩存
"func-call-spacing": ["error", "never"]
規定函數調用時標識符與括號間不留間隔。第二個參數取值「never」和「always」,"never"表不留空格,"always"表要留空格。代碼示例以下:
console.log ('hello') // ✗ avoid console.log('hello') // ✓ ok
"key-spacing": ["error", { "beforeColon": false, "afterColon": true }]
規定鍵值對中冒號與值之間要留空白。第二個參數配置先後是否留白。示例代碼以下:
var obj = { 'key' : 'value' } // ✗ avoid var obj = { 'key' :'value' } // ✗ avoid var obj = { 'key':'value' } // ✗ avoid var obj = { 'key': 'value' } // ✓ ok
"no-mixed-spaces-and-tabs": "error"
規定不能混合使用空格與製表符做爲縮進。
"no-multi-spaces": "error"
規定除了縮進,不要使用多個空格。代碼示例以下:
const id = 1234 // ✗ avoid const id = 1234 // ✓ ok
"no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 0 }]
規定不容許有連續多行空行且文件頭部不容許空行。第二個參數是一個對象,裏面有三個屬性。「max」屬性表連續空行數,「maxEOF」表文件結尾空行數,「maxBOF」表示文件開頭空行數。
"no-trailing-spaces": "error"
規定行末不留空格。
"no-whitespace-before-property": "error"
規定屬性前面不能加空格。
"object-property-newline": ["error", { "allowMultiplePropertiesPerLine": true }]
規定對象屬性換行時注意統一代碼風格(要麼都換行,要麼都不換)。第二個參數是一個對象,配置是否容許在一行代碼中書寫多個屬性。代碼示例以下:
const user = { name: 'Jane Doe', age: 30, username: 'jdoe86' // ✗ avoid } const user = { name: 'Jane Doe', age: 30, username: 'jdoe86' } // ✓ ok const user = { name: 'Jane Doe', age: 30, username: 'jdoe86' }
"operator-linebreak": ["error", "after", { "overrides": { "?": "before", ":": "before" } }]
規定對於三元運算符 ?
和 :
與他們所負責的代碼處於同一行。第二個參數配置換行符位置,可配「after」、「before」、「none」,分別表示操做符以後可換行,操做符以前可換行,先後都不容許換行。第三個參數配置覆蓋第二個參數的配置內容。代碼示例以下:
// ✓ ok var location = env.development ? 'localhost' : 'www.api.com' // ✓ ok var location = env.development ? 'localhost' : 'www.api.com' // ✗ avoid var location = env.development ? 'localhost' : 'www.api.com'
"padded-blocks": ["error", { "blocks": "never", "switches": "never", "classes": "never" }]
規則定義代碼中不要啊出現多餘留白。第二個參數是一個對象,有如下屬性配置。「blocks」表代碼塊,「classes」表類,「switches」表switch語句,取值都爲「never」或「always」,表示是否須要留空行。代碼示例以下:
if (user) { // ✗ avoid const name = getName() } if (user) { const name = getName() // ✓ ok }
"rest-spread-spacing": ["error", "never"]
規定展開運算符與它的表達式間不要留空白。第二個參數取值「never」和「always」,表是否須要留白。代碼示例以下:
fn(... args) // ✗ avoid fn(...args) // ✓ ok
"semi-spacing": ["error", { "before": false, "after": true }]
規定分號前不留空格,後面留一個空格。第二個參數就是配置先後空格開關的。代碼示例以下:
for (let i = 0 ;i < items.length ;i++) {...} // ✗ avoid for (let i = 0; i < items.length; i++) {...} // ✓ ok
"space-before-blocks": ["error", "always"]
規定代碼塊收尾需留空格。第二個參數配置是否須要空格。代碼示例以下:
if (admin){...} // ✗ avoid if (admin) {...} // ✓ ok
"space-before-function-paren": ["error", "always"]
規定函數聲明時括號與函數名間加空格。第二個參數配置是否須要空格。代碼示例以下:
function name (arg) { ... } // ✓ ok function name(arg) { ... } // ✗ avoid run(function () { ... }) // ✓ ok run(function() { ... }) // ✗ avoid
"space-in-parens": ["error", "never"]
規定圓括號間不留空格。第二個參數配置是否須要空格。代碼示例以下:
getName( name ) // ✗ avoid getName(name) // ✓ ok
"space-infix-ops": "error"
規定字符串拼接操做符 (Infix operators) 之間要留空格。代碼示例以下:
// ✓ ok var x = 2 var message = 'hello, ' + name + '!' // ✗ avoid var x=2 var message = 'hello, '+name+'!'
"space-unary-ops": ["error", { "words": true, "nonwords": false }]
規定文字格式的一元運算符後跟一個空格。第二個參數有三個屬性,「words」表文字格式的運算符(new,delete,typeof,void,yield),"nonwords"表非文字運算符(-,+,--,++,!,!!),"overrides"配置一個對象值,配置具體操做符的空格行爲。代碼示例以下:
typeof!admin // ✗ avoid typeof !admin // ✓ ok
"template-curly-spacing": ["error", "never"]
規定模板字符串中變量先後不加空格。第二個參數配置是否須要空格。代碼示例以下:
const message = `Hello, ${ name }` // ✗ avoid const message = `Hello, ${name}` // ✓ ok
"yield-star-spacing": ["error", "both"]
規定yield 中的 先後都要有空格。第二個參數取值「before」、「after」、「both」、「neither」,分別表示前留、後留、都留和都不留。代碼示例以下:
yield* increment() // ✗ avoid yield * increment() // ✓ ok
"generator-star-spacing": ["error", { "before": true, "after": true }]
規定生成器函數*的先後都要留空格。
"accessor-pairs": "error"
規定get和set成對出現。代碼示例以下:
var person = { set name (value) { // ✗ avoid this.name = value } } var person = { set name (value) { this.name = value }, get name () { // ✓ ok return this.name } }
"comma-dangle": ["error", { "arrays": "never", "objects": "never", "imports": "never", "exports": "never", "functions": "never" }]
規定不容許多餘的行末逗號。第二個參數可配置屬性,「arrays」、「objects」、「imports」、「exports」、「functions」,值分別取「never」或「always」。代碼示例以下:
var obj = { message: 'hello', // ✗ avoid }
"comma-style": ["error", "last"]
規定始終將逗號置於行末。第二個參數取值「last」或「first」,分別表示行末或行首。代碼示例以下:
var obj = { foo: 'foo' ,bar: 'bar' // ✗ avoid } var obj = { foo: 'foo', bar: 'bar' // ✓ ok }
"constructor-super": "error"
規定子類構造函數中必須調用super,非子類不要調用super。代碼示例以下:
class Dog { constructor () { super() // ✗ avoid } } class Dog extends Mammal { constructor () { super() // ✓ ok } }
"eqeqeq": ["error", "always", { "null": "ignore" }]
規定始終使用 === 替代 ==,null除外。第二個參數配置是否使用 === ,第三個參數配置是否忽略空值判斷。示例代碼以下:
if (name === 'John') // ✓ ok if (name == 'John') // ✗ avoid if (name !== 'John') // ✓ ok if (name != 'John') // ✗ avoid
"handle-callback-err": ["error", "^(err|error)$" ]
規定函數裏面的異常信息不要忘記處理。第二個參數配置匹配那些參數的正則表達式。示例代碼以下:
// ✓ ok run(function (err) { if (err) throw err window.alert('done') }) // ✗ avoid run(function (err) { window.alert('done') })
"new-parens": "error"
規定無參的構造函數調用時要帶上括號。代碼示例以下:
function Animal () {} var dog = new Animal // ✗ avoid var dog = new Animal() // ✓ ok
"no-array-constructor": "error"
規定使用數組字面量而不是構造器(因爲參數的二義性),可是咱們能夠在初始化一個固定大小數組時用到他。代碼示例以下:
var nums = new Array(1, 2, 3) // ✗ avoid var nums = [1, 2, 3] // ✓ ok
"no-class-assign": "error"
規定避免對類名從新賦值。代碼示例以下:
class Dog {} Dog = 'Fido' // ✗ avoid
"no-const-assign": "error"
規定避免修改使用 const 聲明的變量。代碼示例以下:
const score = 100 score = 125 // ✗ avoid
"no-constant-condition": ["error", { "checkLoops": false }]
規定避免使用常量做爲條件表達式的條件(循環語句除外)。第二個參數配置是否檢查循環表達式。代碼示例以下:
if (false) { // ✗ avoid // ... } if (x === 0) { // ✓ ok // ... } while (true) { // ✓ ok // ... }
"no-delete-var": "error"
規定不要對變量使用 delete 操做。代碼示例以下:
var name delete name // ✗ avoid
"no-dupe-args": "error"
規定不要定義重複的函數參數。代碼示例以下:
function sum (a, b, a) { // ✗ avoid // ... } function sum (a, b, c) { // ✓ ok // ... }
"no-dupe-class-members": "error"
規定類中不要定義重複的屬性。代碼示例以下:
class Dog { bark () {} bark () {} // ✗ avoid }
"no-dupe-keys": "error"
規定對象字面量中不要定義重複的屬性。代碼示例以下:
var user = { name: 'Jane Doe', name: 'John Doe' // ✗ avoid }
"no-duplicate-case": "error"
規定switch 語句中不要定義重複的 case 分支。代碼示例以下:
switch (id) { case 1: // ... case 1: // ✗ avoid }
"no-empty-character-class": "error"
規定正則中不要使用空字符。代碼示例以下:
const myRegex = /^abc[]/ // ✗ avoid const myRegex = /^abc[a-z]/ // ✓ ok
"no-empty-pattern": "error"
規定不要解構空值。代碼示例以下:
const { a: {} } = foo // ✗ avoid const { a: { b } } = foo // ✓ ok
"no-ex-assign": "error"
定義catch 中不要對錯誤從新賦值。代碼示例以下:
try { // ... } catch (e) { e = 'new value' // ✗ avoid } try { // ... } catch (e) { const newVal = 'new value' // ✓ ok }
"no-fallthrough": "error"
規定switch必定要使用 break 來將條件分支正常中斷。代碼示例以下:
switch (filter) { case 1: doSomething() // ✗ avoid case 2: doSomethingElse() } switch (filter) { case 1: doSomething() break // ✓ ok case 2: doSomethingElse() } switch (filter) { case 1: doSomething() // fallthrough // ✓ ok case 2: doSomethingElse() }
"no-func-assign": "error"
規定避免對聲明過的函數從新賦值。代碼示例以下:
function myFunc () { } myFunc = myOtherFunc // ✗ avoid
"no-global-assign": "error"
規定不要對全局只讀對象從新賦值。代碼示例以下:
window = {} // ✗ avoid
"no-invalid-regexp": "error"
規定不要向 RegExp 構造器傳入非法的正則表達式。代碼示例以下:
RegExp('[a-z') // ✗ avoid RegExp('[a-z]') // ✓ ok
"no-iterator": "error"
規定禁止使用 __iterator__。代碼示例以下:
Foo.prototype.__iterator__ = function () {} // ✗ avoid
"no-self-assign": "error"
規定避免將變量賦值給本身。代碼示例以下:
name = name // ✗ avoid
"no-self-compare": "error"
規定避免將變量與本身進行比較操做。代碼示例以下:
if (score === score) {} // ✗ avoid
"no-shadow-restricted-names": "error"
規定禁止隨意更改關鍵字的值。代碼示例以下:
let undefined = 'value' // ✗ avoid
"no-sparse-arrays": "error"
規定禁止使用稀疏數組。代碼示例以下:
let fruits = ['apple',, 'orange'] // ✗ avoid
"no-template-curly-in-string": "error"
規定正確使用 ES6 中的字符串模板。代碼示例以下:
const message = 'Hello ${name}' // ✗ avoid const message = `Hello ${name}` // ✓ ok
"no-throw-literal": "error"
規定用throw 拋錯時,拋出 Error 對象而不是字符串。代碼示例以下:
throw 'error' // ✗ avoid throw new Error('error') // ✓ ok
"no-unexpected-multiline": "error"
規定不要使用 (, [, or ` 等做爲一行的開始。在沒有分號的狀況下代碼壓縮後會致使報錯,而堅持這一規範則可避免出錯。代碼示例以下:
// ✓ ok ;(function () { window.alert('ok') }()) // ✗ avoid (function () { window.alert('ok') }()) // ✓ ok ;[1, 2, 3].forEach(bar) // ✗ avoid [1, 2, 3].forEach(bar) // ✓ ok ;`hello`.indexOf('o') // ✗ avoid `hello`.indexOf('o')
"no-unmodified-loop-condition": "error"
規定循環語句中注意更新循環變量。代碼示例以下:
for (let i = 0; i < items.length; j++) {...} // ✗ avoid for (let i = 0; i < items.length; i++) {...} // ✓ ok
"no-unreachable": "error"
規定return,throw,continue 和 break 後不要再跟代碼。代碼示例以下:
function doSomething () { return true console.log('never called') // ✗ avoid }
"no-unsafe-finally": "error"
規定finally 代碼塊中不要再改變程序執行流程。代碼示例以下:
try { // ... } catch (e) { // ... } finally { return 42 // ✗ avoid }
"valid-typeof": ["error", { "requireStringLiterals": true }]
規定用合法的字符串跟 typeof 進行比較操做。第二個參數配置是否只和字符串比對。代碼示例以下:
typeof name === 'undefimed' // ✗ avoid typeof name === 'undefined' // ✓ ok typeof bar == Object // ✗ avoid
"no-control-regex": "error"
規定禁止在正則表達式中使用控制字符。代碼示例以下:
var pattern = /\x1f/ // ✗ avoid var pattern = /\x20/ // ✓ ok
"no-unused-expressions": ["error", { "allowShortCircuit": true, "allowTernary": true, "allowTaggedTemplates": true }]
規定禁止無用的表達式。
"no-use-before-define": ["error", { "functions": false, "classes": false, "variables": false }]
規定未定義前不能使用。
"accessor-pairs": "error"
對象中定義了存值器,必定要定義對應的取值器。代碼示例以下:
var person = { set name (value) { // ✗ avoid this.name = value } } var person = { set name (value) { this.name = value }, get name () { // ✓ ok return this.name } }
"no-caller": "error"
規定避免使用 arguments.callee 和 arguments.caller(不利於代碼優化,且高級版本的ES標準會廢棄它)。代碼示例以下:
function foo (n) { if (n <= 0) return arguments.callee(n - 1) // ✗ avoid } function foo (n) { if (n <= 0) return foo(n - 1) }
"no-cond-assign": "error"
規定條件語句中賦值語句使用括號包起來。代碼示例以下:
// ✓ ok while ((m = text.match(expr))) { // ... } // ✗ avoid while (m = text.match(expr)) { // ... }
"no-debugger": "error"
規定不要使用 debugger。
"no-eval": "error"
規定不要使用 eval()。
"no-extend-native": "error"
規定不要擴展原生對象。
"no-extra-bind": "error"
規定避免多餘的函數上下文綁定。代碼示例以下:
const name = function () { getName() }.bind(user) // ✗ avoid const name = function () { this.getName() }.bind(user) // ✓ ok
"no-extra-boolean-cast": "error"
規定避免沒必要要的布爾轉換。代碼示例以下:
const result = true if (!!result) { // ✗ avoid // ... } const result = true if (result) { // ✓ ok // ... }
"no-extra-parens": ["error", "functions"]
規定不要使用多餘的括號包裹函數。第二個參數取值「all」或「functions」,表控制範圍。代碼示例以下:
const myFunc = (function () { }) // ✗ avoid const myFunc = function () { } // ✓ ok
"no-floating-decimal": "error"
規定不要省去小數點前面的0(加強可讀性)。代碼示例以下:
const discount = .5 // ✗ avoid const discount = 0.5 // ✓ ok
"no-implied-eval": "error"
規定避免使用隱式的 eval()。代碼示例以下:
setTimeout("alert('Hello world')") // ✗ avoid setTimeout(function () { alert('Hello world') }) // ✓ ok
"no-inner-declarations": ["error", "functions"]
規定嵌套的代碼塊中禁止再定義函數。第二個參數配置控制範圍,取值「both」(functions+var)、「functions」。代碼示例以下:
if (authenticated) { function setAuthUser () {} // ✗ avoid }
"no-irregular-whitespace": "error"
規定不要使用非法的空白符。代碼示例以下:
function myFunc () /*<NBSP>*/{} // ✗ avoid
"no-labels": ["error", { "allowLoop": false, "allowSwitch": false }]
規定不要使用標籤語句。第二個參數含兩個屬性,「allowLoop」配置是否在循環語句中禁用,「allowSwitch」配置是否在switch語句中禁用。代碼示例以下:
label: while (true) { break label // ✗ avoid }
"no-lone-blocks": "error"
規定不要書寫沒必要要的嵌套代碼塊。代碼示例以下:
function myFunc () { { // ✗ avoid myOtherFunc() } } function myFunc () { myOtherFunc() // ✓ ok }
"no-multi-str": "error"
規定不要使用多行字符串。代碼示例以下:
const message = 'Hello \ world' // ✗ avoid
"no-new": "error"
規定new 建立對象實例後須要賦值給變量。代碼示例以下:
new Character() // ✗ avoid const character = new Character() // ✓ ok
"no-new-func": "error"
規定禁止使用 Function 構造器。代碼示例以下:
var sum = new Function('a', 'b', 'return a + b') // ✗ avoid
"no-new-object": "error"
規定禁止使用 Object 構造器,直接聲明對象便可。代碼示例以下:
let config = new Object() // ✗ avoid
"no-new-require": "error"
規定禁止使用 new require。代碼示例以下:
const myModule = new require('my-module') // ✗ avoid
"no-new-symbol": "error"
規定禁止使用 Symbol 構造器。代碼示例以下:
const foo = new Symbol('foo') // ✗ avoid
"no-new-wrappers": "error"
規定禁止使用原始包裝器。代碼示例以下:
const message = new String('hello') // ✗ avoid
"no-obj-calls": "error"
規定不要將全局對象的屬性做爲函數調用。代碼示例以下:
const math = Math() // ✗ avoid
"no-octal": "error"
規定不要使用八進制字面量。代碼示例以下:
const num = 042 // ✗ avoid const num = '042' // ✓ ok
"no-octal-escape": "error"
規定字符串字面量中也不要使用八進制轉義字符。代碼示例以下:
const copyright = 'Copyright \251' // ✗ avoid
"no-proto": "error"
規定使用 getPrototypeOf 來替代 __proto__。代碼示例以下:
const foo = obj.__proto__ // ✗ avoid const foo = Object.getPrototypeOf(obj) // ✓ ok
"no-redeclare": "error"
規定不要重複聲明變量。代碼示例以下:
let name = 'John' let name = 'Jane' // ✗ avoid let name = 'John' name = 'Jane' // ✓ ok
"no-regex-spaces": "error"
規定正則中避免使用多個空格。代碼示例以下:
const regexp = /test value/ // ✗ avoid const regexp = /test {3}value/ // ✓ ok const regexp = /test value/ // ✓ ok
"no-return-assign": ["error", "except-parens"]
規定return 語句中的賦值必需有括號包裹。代碼示例以下:
function sum (a, b) { return result = a + b // ✗ avoid } function sum (a, b) { return (result = a + b) // ✓ ok }
"no-sequences": "error"
規定避免使用逗號操做符。代碼示例以下:
if (doSomething(), !!test) {} // ✗ avoid
"no-undef-init": "error"
規定不要使用 undefined 來初始化變量。代碼示例以下:
let name = undefined // ✗ avoid let name name = 'value' // ✓ ok
"no-unneeded-ternary": ["error", { "defaultAssignment": false }]
規定若是有更好的實現,儘可能不要使用三元表達式。代碼示例以下:
let score = val ? val : 0 // ✗ avoid let score = val || 0 // ✓ ok
"no-unsafe-negation": "error"
規定關係運算符的左值不要作取反操做。代碼示例以下:
if (!key in obj) {} // ✗ avoid
"no-unused-vars": ["error", { "vars": "all", "args": "none", "ignoreRestSiblings": true }]
規定不要定義未使用的變量。代碼示例以下:
function myFunction () { var result = something() // ✗ avoid }
"no-useless-call": "error"
規定避免沒必要要的 .call() 和 .apply()。代碼示例以下:
sum.call(null, 1, 2, 3) // ✗ avoid
"no-useless-computed-key": "error"
規定避免使用沒必要要的計算值做對象屬性。代碼示例以下:
const user = { ['name']: 'John Doe' } // ✗ avoid const user = { name: 'John Doe' } // ✓ ok
"no-useless-constructor": "error"
規定禁止多餘的構造器(ES2015會自動生成一個簡單構造器)。代碼示例以下:
class Car { constructor () { // ✗ avoid } }
"no-useless-escape": "error"
規定禁止沒必要要的轉義。代碼示例以下:
let message = 'Hell\o' // ✗ avoid
"no-useless-rename": "error"
規定import, export 和解構操做中,禁止賦值到同名變量。代碼示例以下:
import { config as config } from './config' // ✗ avoid import { config } from './config' // ✓ ok
"no-with": "error"
規定禁止使用 with。代碼示例以下:
with (val) {...} // ✗ avoid
"one-var": ["error", { "initialized": "never" }]
規定每一個 var 關鍵字單獨聲明一個變量。代碼示例以下:
// ✓ ok var silent = true var verbose = true // ✗ avoid var silent = true, verbose = true // ✗ avoid var silent = true, verbose = true
"quotes": ["error", "single", { "avoidEscape": true, "allowTemplateLiterals": true }]
規定除須要轉義的狀況外,字符串統一使用單引號。第二個參數取值「single」、「double」,分別表示單引號和雙引號。第三個參數配置是否容許嵌套和是否容許字符串模板。代碼示例以下:
console.log('hello there') $("<div class='box'>")
"semi": ["error", "always"]
規定必須添加分號。第二個參數配置開關取值「never」、「always」。代碼示例以下:
window.alert('hi') // ✓ ok window.alert('hi'); // ✗ avoid
"use-isnan": "error"
規定檢查 NaN 的正確姿式是使用 isNaN()。
"wrap-iife": ["error", "any", { "functionPrototypeMethods": true }]
規定自調用匿名函數 (IIFEs) 使用括號包裹。代碼示例以下:
const getName = function () { }() // ✗ avoid const getName = (function () { }()) // ✓ ok const getName = (function () { })() // ✓ ok
"arrow-spacing": ["error", { "before": true, "after": true }]
規定箭頭函數必須有先後括號。
"new-cap": ["error", { "newIsCap": true, "capIsNew": false }]
規定構造函數要以大寫字母開頭。第二個參數配置細則,"newIsCap"配置只要是new關鍵字初始化的函數,首字母必須大寫;「capIsNew」配置是否容許大寫字母開頭的函數不使用new關鍵字初始化。代碼示例以下:
function animal () {} var dog = new animal() // ✗ avoid function Animal () {} var dog = new Animal() // ✓ ok function Animal () {} var dog = Animal() // ✓ ok
"camelcase": ["error", { "properties": "never" }]
規定變量和函數使用駝峯命名法。第二個參數配置對象屬性是否也要遵循駝峯命名法。示例代碼以下:
function my_function () { } // ✗ avoid function myFunction () { } // ✓ ok var my_var = 'hello' // ✗ avoid var myVar = 'hello' // ✓ ok
"angular/no-private-call":["error"]
規定使用直接使用angular中帶$$符號的成員,他們都是私有成員。
"angular/di-unused":["error"]
規定不要注入不使用的服務。
"angular/empty-controller":["error"]
規定控制器不能爲空。
"angular/no-run-logic":["error"]
規定控制器中只有調用代碼,沒有聲明邏輯。
"angular/no-cookiestore":["error"]
規定取代$cookiesStore,而使用$cookie來操做緩存。
"angular/no-directive-replace":["error"]
規定自定義指令中不能使用replace屬性。
"angular/no-http-callback":["error"]
規定不要直接使用 $http 的回調函數,應該使用promise來操做回調。
"angular/controller-name":["error","/[a-z].*Ctrl/"]
規定控制器命名規則,以小寫字母開頭以「Ctrl」結尾。
"angular/di":["error","array"]
規定依賴注入規則,必須有數組列表而且參數與之一致。
"angular/function-type":["error","anonymous"]
規定爲angular組件指定一致的函數風格——匿名函數。
"angular/document-service":["off"]
規定使用$document。
"angular/interval-service":["off"]
規定使用$interval。
"angular/log":["off"]
規定使用$log。
"angular/timeout-service":["off"]
規定使用$timeout。
"angular/window-service":["off"]
規定使用$window。
參考文章:
https://github.com/standard/standard/blob/master/docs/RULES-zhcn.md#javascript-standard-style
歡迎關注個人微信公衆號: