Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript或操作返回意外结果_Javascript - Fatal编程技术网

javascript或操作返回意外结果

javascript或操作返回意外结果,javascript,Javascript,我对javascript非常陌生。我有一个类似于: var a = 2 if(a !=2 || a != 3){ console.log("not") } 这里我将变量a的值设置为2 在我的情况下,我设置了如果a不是2或a不是3它应该打印不是 但是这里a的值是2它正在打印而不是。 它总是给出而不是任何值 我可以很容易地检查这是python,如: 如果不是a==2或不是a==3 这里出了什么问题???简单的解释 false || true = true a != 2 //returns

我对javascript非常陌生。我有一个类似于:

var a = 2

if(a !=2 || a != 3){
  console.log("not")
}
这里我将变量
a
的值设置为
2

在我的情况下,我设置了
如果a不是2或a不是3
它应该打印
不是
但是这里
a的
值是
2
它正在打印
而不是
。
它总是给出
而不是
任何值

我可以很容易地检查这是python,如:

如果不是a==2或不是a==3

这里出了什么问题???

简单的解释

false || true = true

a != 2 //returns false
a != 3 //returns true
在python中:

not a == 2 // returns false
not a == 3 //returns true
也许你想要这个:

if(a !=2 && a != 3){
  console.log("not")
}
换句话说,如果a不是2,a不是3。 这就是布尔逻辑的工作原理。在您的示例中,由于a不等于3,因此条件为真。

请阅读

如果a不是2或a不是3,则条件的计算结果为true,这意味着只有当a同时为2和3时,is才会为false,这是不可能的-此条件始终为true

你可能也有兴趣在网上阅读一些东西

如果要确保a不是2或3,则应将其更改为

if((a != 2) && (a != 3)){
正如在a不是2和a不是3中一样,请记住,您使用的是2个语句

a
现在是
2

这是
false
,因此我们查看or的另一面

这是真的。所以or测试的两个方面之一是正确的。因此,or测试是正确的



如果您想测试一个值是否不是2它是否也是而不是3,那么您需要使用
&
操作符。

这是一种非常预期的行为,在python和javascript中也可以使用

a = 2
if not a == 2 or not a== 3:
    print ("not")
相当于

var a = 2

if(a !=2 || a != 3){
  console.log("not")
}

表达式条件中,当其中一个主题为真或直到没有条件时进行检查。

“或”在条件中表示,如果任何一个表达式不满足条件,则将执行if块中的语句

(a != 2) 

返回true

在代码片段中

(a != 3)
是真的,因此这句话

console.log("not");

执行。

一个问题是,您的python代码实际上是相同的。在python示例中,您的意思可能是:
不是(a==2或a==3)
,它具有js等价物
!(a==2 | a==3)
(a != 2) 
(a != 3) 
(a != 3)
console.log("not");