Javascript JS或语句不起作用

Javascript JS或语句不起作用,javascript,jquery,Javascript,Jquery,我知道这个问题已经被问了一百万次了,但我已经研究了其他线程中建议的几乎所有方法,似乎无法理解为什么我的中的或语句如果不起作用。如果我的操作完全错误,我想解释一下如何使用或功能 我有以下代码 if((a != 'error') || (a != 'stay')) { //Do something here } 不管a是错误还是停留代码仍在执行 我也试过了 if((!a == 'error') || (!a == 'stay')) { //Do something here }

我知道这个问题已经被问了一百万次了,但我已经研究了其他线程中建议的几乎所有方法,似乎无法理解为什么我的
中的
语句如果
不起作用。如果我的操作完全错误,我想解释一下如何使用
功能

我有以下代码

if((a != 'error') || (a != 'stay')) {
    //Do something here
}
不管a是
错误
还是
停留
代码仍在执行

我也试过了

if((!a == 'error') || (!a == 'stay')) {
    //Do something here
}
没有括号,但似乎没有任何效果


提前感谢

你的情况是重复的。不管a的价值是多少,这都是真的。如果a是“错误”,则a不是“停留”,反之亦然。看来你想要的是

if (a != 'error' && a != 'stay') { /* ... */ }

你的情况是重言式的。不管a的价值是多少,这都是真的。如果a是“错误”,则a不是“停留”,反之亦然。看来你想要的是

if (a != 'error' && a != 'stay') { /* ... */ }
您将(!)符号一起包含在括号中,这是一个错误,不会使逻辑运算符工作。你需要把(!)标志放在括号的外面和前面。请检查下面的代码以了解更多信息

var a = "hello";
var b = "stay";
var c = "error";
if(!(a == 'error') || !(a == 'stay')) {
console.log("Hello");
}; 
为了获得最佳实践,您应该这样做

var a = "hello";
var b = "stay";
var c = "error";
if(!(a == 'error' || a == 'stay')) {
console.log("Hello");
};
您将(!)符号一起包含在括号中,这是一个错误,不会使逻辑运算符工作。你需要把(!)标志放在括号的外面和前面。请检查下面的代码以了解更多信息

var a = "hello";
var b = "stay";
var c = "error";
if(!(a == 'error') || !(a == 'stay')) {
console.log("Hello");
}; 
为了获得最佳实践,您应该这样做

var a = "hello";
var b = "stay";
var c = "error";
if(!(a == 'error' || a == 'stay')) {
console.log("Hello");
};

第一句话总是正确的——如果你想一想,因为如果一个是错误,它就不会停留,反之亦然,所以第一个比较或第二个比较都是正确的,这就是或者如何工作的——也许你想要
&&
(而且)你可能是指
如果(!(a=='error'.\a='stay')
而不是否定
a
,我向你保证,OR语句是有效的,你只是没有说你想说的(你认为你在说的)。用语言描述你要测试的内容。当
a
不是
error
并且a不是
stay
(?)你想“在这里做点什么”当
a
error
或者它是
stay
(?)[顺便说一句,你的问题与jquery无关]第一句话总是正确的——如果你仔细想想,因为如果一个是错误,它就不是停留,反之亦然,所以第一个比较或第二个比较都是正确的,这就是OR的工作原理-也许你想要
&&
(并且)你可能是指
如果(!(a=='error'| a=='stay')
而不是否定
a
,我向你保证,OR语句是有效的,你只是没有说出你想说的(你认为你在说的)。用语言描述你要测试的内容。当
a
不是
error
并且a不是
stay
时,你想“在这里做点什么”(?)当
a
不是
error
或者是
stay
(?)[顺便说一句,你的问题与jquery无关]我明白了,我假设如果我说&&如果它不是错误并且没有留下,那么如果它是其中一个,那么它仍然会通过,因为另一个语句会返回错误,我应该在回答之前询问,但是如果不是你刚才描述的,你希望它做什么呢?我明白了,我假设如果我说&&if只有在它不是错误并且没有留下的情况下才会被解雇,因此如果它是其中一个,它仍然会通过,因为另一个语句会返回错误,我应该在回答之前询问,但你希望它具体做什么,如果不是你刚才描述的那样?@DanielBeck你是什么意思?我的意思是他们不会做同样的事情。第一个总是记录“你好”。第二个将为
a
的任何值记录“Hello”,除了“error”或“stay”。@DanielBeck你的意思是什么?我的意思是他们不做同样的事情。第一个总是记录“你好”。第二个将为
a
的任何值记录“Hello”,但“error”或“stay”除外。