【发布时间】:2019-03-01 17:41:12
【问题描述】:
我正在尝试使用 OR 在一个“if”语句中编写多个条件。
我正在尝试编写的 sudo 代码:
如果状态为空,则导航,如果状态为“已完成”,则导航,如果状态为“失败”,请导航。
这是我目前的代码:
if ((_.isEmpty($scope.status)) || ($scope.status != ('completed' || 'failed'))) {
return frameworkService.navigateTo('giftcardWelcome');
}
_.isEmpty 检查有效,检查状态是否为“已完成”有效,但在检查 || 时对于“失败”,它没有执行此操作。
有人可以向我解释一下为什么以及如何正确编写它吗?我知道我可以写一个扩大的 if 语句,但想要一个干净的重构方式。
【问题讨论】:
-
('completed' || 'failed')==='completed'- 因为这就是 javascript 的工作方式 - 你需要单独检查相等性 ...($scope.status != 'completed' && $scope.status != 'failed')- 注意&&不是||... 因为 @ 987654327@ 将永远为真 - 因为逻辑
标签: javascript if-statement operators or-operator