operator-assignment
在可能的情況下要求或禁止簡寫賦值運算符
JavaScript 提供了簡寫運算符,將變數賦值和一些簡單的數學運算結合在一起。例如,x = x + 4
可以縮寫為 x += 4
。支援的簡寫形式如下
Shorthand | Separate
-----------|------------
x += y | x = x + y
x -= y | x = x - y
x *= y | x = x * y
x /= y | x = x / y
x %= y | x = x % y
x **= y | x = x ** y
x <<= y | x = x << y
x >>= y | x = x >> y
x >>>= y | x = x >>> y
x &= y | x = x & y
x ^= y | x = x ^ y
x |= y | x = x | y
規則詳細資訊
此規則在可能的情況下要求或禁止簡寫賦值運算符。
此規則適用於上表列出的運算符。它不會報告邏輯賦值運算符 &&=
、||=
和 ??=
,因為它們的短路行為與其他賦值運算符不同。
選項
此規則有一個字串選項
"always"
(預設) 在可能的情況下要求簡寫賦值運算符"never"
禁止簡寫賦值運算符
always
以下是使用預設 "always"
選項時的不正確程式碼範例
在 Playground 中開啟
/*eslint operator-assignment: ["error", "always"]*/
;
;
;
;
以下是使用預設 "always"
選項時的正確程式碼範例
在 Playground 中開啟
/*eslint operator-assignment: ["error", "always"]*/
x = y;
x += y;
x = y * z;
x = (x * y) * z;
x[0] /= y;
x[foo()] = x[foo()] % 2;
x = y + x; // `+` is not always commutative (e.g. x = "abc")
never
以下是使用 "never"
選項時的不正確程式碼範例
在 Playground 中開啟
/*eslint operator-assignment: ["error", "never"]*/
;
;
以下是使用 "never"
選項時的正確程式碼範例
在 Playground 中開啟
/*eslint operator-assignment: ["error", "never"]*/
x = x + y;
x.y = x.y / a.b;
何時不應使用
使用運算符賦值簡寫是一種風格選擇。關閉此規則將允許開發人員根據具體情況選擇哪種風格更具可讀性。
版本
此規則在 ESLint v0.10.0 中引入。