Javascript 条件语句中的递增变量

Javascript 条件语句中的递增变量,javascript,if-statement,increment,conditional-statements,Javascript,If Statement,Increment,Conditional Statements,所以,我最近觉得自己真的很聪明(我学到的东西在编程时并不总是一个好的特点),并尝试重构如下内容: counter++ if (counter > something) { doThisCoolThing() } 像这样的事情 if (++counter > something) { doThisCoolThing() } 但我立刻被告知不应该这样做,必须将递增计数器移回一行 我在互联网上搜索关于这个主题的信息,我找到了一些关于MDN的页面,这是最相关的说法,似乎表

所以,我最近觉得自己真的很聪明(我学到的东西在编程时并不总是一个好的特点),并尝试重构如下内容:

counter++
if (counter > something) {
    doThisCoolThing()
}
像这样的事情

if (++counter > something) {
    doThisCoolThing()
}
但我立刻被告知不应该这样做,必须将递增计数器移回一行

我在互联网上搜索关于这个主题的信息,我找到了一些关于MDN的页面,这是最相关的说法,似乎表明在条件语句中增加一个变量是完全合法的。我能找到的唯一有点相关的警告是关于,例如,
if(x=y)
,但是
if((x=y))
没有问题

我只是想听听其他的意见。这是坏习惯还是完全有效


谢谢你

你说得对!你可以用括号表示你的增量

if((++a)>somthing){
 doSomthing();
}

这对您一定有帮助:)

因为这不是一个有正确答案的问题,所以您应该在语义上提问,没有区别,所以您的程序应该以相同的方式运行。问题是代码很难阅读。在我看来,这不是一个好的做法。是谁告诉你不应该这样做的,朋友、同事、上级、堆栈溢出的另一个人?@hgoebl这是我的边界线。技术上有一个答案,或者更确切地说,关于为什么一个比另一个好,有很多答案。我会说这更接近于固执己见的答案,但取决于他对我上述问题的回答,我可能会有一个实际的答案。此外,他还展示了对它的真正研究。在“这是一个糟糕的做法吗?”中有一个事实问题,这个问题的答案可以参考一些Javascript风格的指南。