ESLint 之 no-plusplus 禁止使用一元操作符
假如我们使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论