我在javascript中正确使用逻辑运算符OR(||)吗?

时间:2012-02-26 22:08:32

标签: javascript operator-keyword logical-operators

if ((typed_edge!='Either') || (typed_edge!='Walkable')){
    alert("YES");
    alert("type_edge"+ typed_edge + bus_stops_visited[$k]+ " " +bus_stops_visited[$k+1]);
    }

如果typed_edge具有值Either,     显示警告(“是”)。

是不是应该不显示?

我想要的是当typed_edge具有值“Either”或“Walkable”时,不会显示警报。但事实似乎并非如此!

5 个答案:

答案 0 :(得分:5)

你拥有它的方式需要这个:

if('Either' !== typed_edge && 'Walkable' !== typed_edge) {
 // this means - it is NOT both of them
}

你现在拥有它的方式,它说:

如果它不是

如果它不是可以走路的

这意味着如果它是'可步行',那么第一个条件评估为'真'

这意味着警报会响起。

相反,如果它是'Either',那么第二个条件将是'true',它将会触发。

答案 1 :(得分:1)

试试这个:

if (typed_edge !== 'Either' && typed_edge !== 'Walkable'){
    alert("YES");
    alert("type_edge"+ typed_edge + bus_stops_visited[$k]+ " " +bus_stops_visited[$k+1]);
}

编辑:错过了问题中的“不”

答案 2 :(得分:1)

if (typed_edge==='Either' || typed_edge==='Walkable'){
    alert("YES");
    alert("type_edge"+ typed_edge + bus_stops_visited[$k]+ " " +bus_stops_visited[$k+1]);
}

你应该把条件设为句子,这样才能更容易构建。这样,你只需用所需的语法替换语法。

答案 3 :(得分:0)

||条件如果使用正确,但是您在not-equal-to语句中使用if(),请尝试以下操作:

if ((typed_edge=='Either') || (typed_edge=='Walkable')){
    alert("YES");
    alert("type_edge"+ typed_edge + bus_stops_visited[$k]+ " " +bus_stops_visited[$k+1]);
}

答案 4 :(得分:0)

也许尝试另一种方法。将列入白名单/列入黑名单的值加载到数组中,并检查是否找到任何值。

if(["Either","Walkable"].indexOf(typed_edge) > -1)
{
    alert('got either or walkable here');
}