Javascript多次或条件检查

时间:2013-09-20 12:37:08

标签: javascript html

我已经找到了一些简单的if else检查

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/

4 个答案:

答案 0 :(得分:6)

ContactStatus == 2 || 3 || 4无效(可能无效不是正确的单词,为了更准确,让我们说它没有按照您的想法行事)

对于您的方案,您需要使用

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

您的代码可以转换为

ContactStatus == 2 || true || true

这总是如此。

答案 1 :(得分:0)

问题是(ContactStatus == 2 || 3 || 4)

正确的方法应该是(ContactStatus == 2 || ContactStatus == 3 || ContactStatus == 4)

答案 2 :(得分:0)

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

这是你的问题。你是说ContactStatus等于2,它是真的,或者是真或者是真的。

False = 0,True不是0。

您需要将其重写为:

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

如果你改变那件事,它应该有用

答案 3 :(得分:0)

这会有用吗?我将if条件从(ContactStatus == 2 || 3 || 4)改为((ContactStatus == 2)||(ContactStatus == 3)||(ContactStatus == 4))。

(ContactStatus == 2 || 3 || 4)评估(ContactStatus == 2);因为它是真的,它评估3作为一个条件。由于3与0(零)不同,因此结果为真;并且整个OR评估为真。最终结果是整个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');

}