这段if可以还有优化的余地吗吗?
这段if可以还有优化的余地吗吗?
if (this.switchNum == 1) {
this.switchNum = 2
} else {
this.switchNum = 1
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
用三元运算符也可以
this.switchNum = this.switchNum == 1 ? 2 : 1;
仅针对题主特殊业务,
this.switchNum
要么是1
, 要么是2
:this.switchNum = 3 - this.switchNum
三元运算符就可以,或者不改其实也没关系。这种奇奇怪怪的逻辑写成这样再加一句注释还方便后面维护和新人阅读代码
我觉得没必要改这样就挺好了
或者就是改成3元运算符
非得整成异或, 其他人看到的话还得懵一会
一般像这种简单的if...else分支语句,我会第一时间考虑
三元运算符
下的方法。改造如下:
可以分开解析:
其中
?
之前的是条件,也就是判断this.switchNum是否与1相等:
前边代表前边结果成立
返回的值:
后边代表前边结果不成立
返回的值所以这段代码(
this.switchNum == 1 ? 2 : 1
)要么返回2,要么返回1,完全取决于this.switchNum == 1
还是this.switchNum != 1
那么既然值得到了,就赋值给
this.switchNum
即可最终的结果就是上边写的: