最近,我认为自己非常聪明(但在编程时,我已经学到这并不总是一个好品质),尝试重构类似这样的东西:
counter++
if (counter > something) {
doThisCoolThing()
}
变成这样的东西
if (++counter > something) {
doThisCoolThing()
}
但我立即被告知不应该这样做,必须将计数器递增的操作移回到上一行。
我在互联网上搜寻了有关这个主题的信息,找到了几页MDN的相关页面,其中最相关的说法是"递增运算符会将其操作数递增(加一),并返回一个值。[...] 如果使用前缀运算符(例如,++x)在操作数之前,则它返回递增后的值。", 这似乎表明在条件语句中递增变量是完全合法的。我能找到的唯一有点相关的警告是关于简单赋值的,例如 if (x = y)
,但if ((x = y))
是可以的。
我只是想听听其他人对此的看法。这是不良实践还是完全有效的?
谢谢