Javascript 多重或条件检查

Javascript multiple or condition check

本文关键字:条件 检查 Javascript      更新时间:2023-09-26

我用一些简单的检查来检查

var IsCompanyContacttitleUpdate = false;
var ContactStatus = -1;
if ((IsCompanyContacttitleUpdate == false) && (ContactStatus == 2 || 3 || 4)) 
{
    alert('inside if');
}
else if (IsCompanyContacttitleUpdate == false && ContactStatus == 2) {
    alert('inside else if');
}
else {
    alert('yup yup else');
}

在这种情况下,我希望执行 else 部分。 但它没有被触发。请帮我解决这个问题...提前致谢请看小提琴http://jsfiddle.net/vuHYn/1/

这个ContactStatus == 2 || 3 || 4是无效的(也许无效不是正确的词,更准确地说,假设它没有做你认为它做的事情)

对于你的方案,你将需要使用

ContactStatus == 2 || ContactStatus == 3 || ContactStatus == 4

您的代码可以转换为

ContactStatus == 2 || true || true

这总是正确的。

问题是(联系人状态 == 2 || 3 || 4)

正确的方法应该(联系人状态 == 2 ||联系人状态 == 3 ||联系人状态 == 4)

(ContactStatus == 2 || 3 || 4))

这是你的问题。你是说如果ContactStatus等于 2,那就是真的,或者真的或真的。

假 = 0,真是不是 0 的任何值。

您需要将其重写为:

(ContactStatus == 2 || ContactStatus == 3 || ContactStatus == 4))

如果你改变一件事,它应该有效

这行得通吗?我将 if 条件从 (联系人状态 == 2 || 3 || 4) 更改为 ((联系人状态 == 2) ||(联系人状态 == 3) ||(联系人状态 == 4))。

(ContactStatus == 2 || 3

|| 4) 评估 (ContactStatus == 2);因为它是真的,所以它评估 3 作为一个条件。由于 3 不同于 0(零),因此结果为 true;并且整个 OR 的计算结果为 true。最终结果是整个 if 条件为真,并且选择了"then"分支。

var IsCompanyContacttitleUpdate = false;
var ContactStatus = 6;
if ((IsCompanyContacttitleUpdate == false) && ((ContactStatus == 2) || (ContactStatus == 3) || (ContactStatus == 4))) 
{
    alert('inside if')
} else if (IsCompanyContacttitleUpdate == false && ContactStatus == 2) {
    alert('inside else if')
} else {
    alert('yup yup else');
}