ESLint 之 no-plusplus 禁止使用一元操作符

发布于 2023-05-06 17:55:40 字数 1999 浏览 81 评论 0

假如我们使用 ESLint 来检查代码质量,且启用了其中一条规则 no-plusplus(禁止使用一元操作符 ++--),下面代码就会提示错误。

// Unary operator '++' used. eslint (no-plusplus)
for (let i = 0; i < 10; i++) {
  // ...
}

由于一元 ++-- 运算符都受 自动插入分号机制(Automatic Semicolon Insertion,简称 ASI)的影响,因此空格的差异可能会改变源代码的语义。

var i = 10;
var j = 20;

i ++
j
// i = 11, j = 20
var i = 10;
var j = 20;

i
++
j
// i = 10, j = 21

此规则的错误代码示例:

/*eslint no-plusplus: "error"*/

var foo = 0;
foo++;

var bar = 42;
bar--;

for (i = 0; i < l; i++) {
    return;
}

此规则的正确代码示例:

/*eslint no-plusplus: "error"*/

var foo = 0;
foo += 1;

var bar = 42;
bar -= 1;

for (i = 0; i < l; i += 1) {
    return;
}

选项

该规则还有一个选项 { "allowForLoopAfterthoughts": true },它允许在 for 循环中使用一元运算符 ++--

此规则的正确代码示例包含以下 { "allowForLoopAfterthoughts": true } 选项:

/*eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }]*/

for (let i = 0; i < 10; i++) {
  // ...
}

for (let i = 10; i > 0; i--) {
  // ...
}

此规则的错误代码示例包含以下 { "allowForLoopAfterthoughts": true } 选项:

/*eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }]*/
let i, j, l;

for (i = 0, j = l; i < l; i++, j--) {
  // ...
}

for (let i = 0; i < 10; j = i++) {
  // ...
}

for (i = l; i--;) {
  // ...
}

for (i = 0; i < l;) i++;

参考

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

红颜悴

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

eins

文章 0 评论 0

世界等同你

文章 0 评论 0

毒初莱肆砂笔

文章 0 评论 0

初雪

文章 0 评论 0

miao

文章 0 评论 0

qq_zQQHIW

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文