首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

operator-assignment

在命令行上的--fix选项可以自动修复一些被这条规则反映的问题。

JavaScript 提供了结合变量赋值和一些简单的数学运算的速记运算符。例如,x = x + 4可以缩短为x += 4。支持的简写形式如下:

代码语言:javascript
复制
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

规则细节

在可能的情况下,此规则要求或不允许赋值运算符速记。

选项

该规则具有单个字符串选项:

  • "always" (默认)在可能的情况下需要赋值运算符速记
  • "never" 不允许赋值运算符速记

always

此规则的默认"always"选项错误代码示例:

代码语言:javascript
复制
/*eslint operator-assignment: ["error", "always"]*/

x = x + y;
x = y * x;
x[0] = x[0] / y;
x.y = x.y << z;

具有默认"always"选项的此规则的正确代码示例:

代码语言:javascript
复制
/*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"选项:

代码语言:javascript
复制
/*eslint operator-assignment: ["error", "never"]*/

x *= y;
x ^= (y + z) / foo();

此规则的正确代码示例包含以下"never"选项:

代码语言:javascript
复制
/*eslint operator-assignment: ["error", "never"]*/

x = x + y;
x.y = x.y / a.b;

何时不使用它

操作员的使用分配速记是一种文体选择。如果关闭此规则,开发人员可以根据具体情况选择哪种风格更具可读性。

版本

该规则在 ESLint 0.10.0中引入。

资源

扫码关注腾讯云开发者

领取腾讯云代金券