【发布时间】:2015-11-03 09:31:38
【问题描述】:
所以,我最近认为我真的很聪明(我学到的东西在编程时并不总是一个好的特质)并试图重构这样的东西:
counter++
if (counter > something) {
doThisCoolThing()
}
变成这样的
if (++counter > something) {
doThisCoolThing()
}
但我立即被告知我不应该这样做,我不得不将递增的计数器向上移动一行。
我在互联网上搜索了有关该主题的信息,并在 MDN 上找到了几页,其中最相关的说法是 "The increment operator increments (adds one to) its operand and returns a value. [...] If used prefix with operator before operand (for example, ++x), then it returns the value after incrementing.",这似乎表明在条件语句中增加变量是完全合法的。我能找到的唯一一些相关的警告是关于simple assignment,例如if (x = y),但 if ((x = y)) 没问题。
我只是想就此获得一些其他意见。这是不好的做法还是完全有效?
谢谢
【问题讨论】:
-
由于这不是一个有正确答案的问题,您应该在codereview.stackexchange.com 中提出您的问题。语义上没有区别,因此您的程序应该以相同的方式运行。
-
有效的问题是代码难以阅读。在我看来,这不是一个好习惯。
-
谁告诉你不应该这样做,朋友、同事、上司、堆栈溢出的另一个人?
-
@hgoebl 这是国际海事组织的边界线。从技术上讲,有一个答案,或者更确切地说,关于为什么一个比另一个更好的答案。我会说它更接近于固执己见的答案,但根据他对我上述问题的回答,我可能有一个实际的答案。此外,他在这方面表现出了真正的研究努力。
-
这里有一个事实性问题,“这是不好的做法吗?”该问题的答案可以参考一些 Javascript 样式指南。
标签: javascript if-statement increment conditional-statements