Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.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,编辑这个问题已经得到了回答,但我选择为未来的读者澄清一下 我研究了关于逻辑算子和不等式算子的解释。不过,它们并没有阐明它们之间的不同之处。让我们看一个例子 !($.inArray(latlng, markers) == -1) 及 这两个表达式之间的区别是什么?两种解决方案中的任何一种都会使另一种更可取吗?比较:取两个值并进行比较。我们可以问各种问题,例如: are these two values "the same", we use == for that is this value bi

编辑这个问题已经得到了回答,但我选择为未来的读者澄清一下

我研究了关于逻辑算子和不等式算子的解释。不过,它们并没有阐明它们之间的不同之处。让我们看一个例子

!($.inArray(latlng, markers) == -1)


这两个表达式之间的区别是什么?两种解决方案中的任何一种都会使另一种更可取吗?

比较:取两个值并进行比较。我们可以问各种问题,例如:

are these two values "the same", we use == for that
is this value bigger than that value, >
is this value bigger than or equal to that, >=
每个操作的结果都是一个布尔值。所以我们可以写:

布尔值areTheyEqual=(x==y)

所以,如果x等于y,那么这个等式就是“真的”。现在假设您想要一个变量“areTheyDifferent”。我们可以通过两种方式得到它,或者使用“not”操作符,它可以处理布尔值:

boolean areTheyDifferent = ! areTheyEqual;
或者我们可以使用“notEqual”比较

boolean areTheyDifferent = ( x != y );
所以,这是我的梦想!运算符获取布尔值并“反转”它。你需要看报纸

!=
作为单个比较运算符,就像>=是单个运算符一样

比较运算符在逻辑语句中用于确定变量或值之间的相等或差异。例如x=y

逻辑运算符用于确定变量或值之间的逻辑


例如!(x==y)

比较:取两个值并进行比较。我们可以问各种问题,例如:

are these two values "the same", we use == for that
is this value bigger than that value, >
is this value bigger than or equal to that, >=
每个操作的结果都是一个布尔值。所以我们可以写:

布尔值areTheyEqual=(x==y)

所以,如果x等于y,那么这个等式就是“真的”。现在假设您想要一个变量“areTheyDifferent”。我们可以通过两种方式得到它,或者使用“not”操作符,它可以处理布尔值:

boolean areTheyDifferent = ! areTheyEqual;
或者我们可以使用“notEqual”比较

boolean areTheyDifferent = ( x != y );
所以,这是我的梦想!运算符获取布尔值并“反转”它。你需要看报纸

!=
作为单个比较运算符,就像>=是单个运算符一样

比较运算符在逻辑语句中用于确定变量或值之间的相等或差异。例如x=y

逻辑运算符用于确定变量或值之间的逻辑


例如!(x==y)

实际上没有太大区别,只是逻辑操作的顺序不同。第一条语句检查它们是否相等,然后给出相反的结果。第二种方法通过比较值来检查它们是否不同,如果相同,则返回false


实际上,它们是相同的。实际上,有一种称为的东西控制着比较运算符和逻辑运算符之间的相等性(即,声明它们是等价的,可以用不同的结构替换具有相同结果的其他运算符)

实际上并没有太大的差异,只是逻辑运算的顺序不同而已。第一条语句检查它们是否相等,然后给出相反的结果。第二种方法通过比较值来检查它们是否不同,如果相同,则返回false


实际上,它们是相同的。实际上,有一种称为的东西控制着比较运算符和逻辑运算符之间的相等性(即,声明它们是等价的,并且可以在不同的结构中替换为具有相同结果的其他运算符)

在您的情况下,[由于前面提到的德摩根定律]没有区别,所以,坚持你认为更容易理解的东西


值得补充的是:

是二进制运算符->的值为2,因为它们比较两件事

另一方面,求反运算符(
)有一个arity one,因为它将其唯一的参数求反到其布尔对应项->因此它是
[true,false]


这就是为什么您可能会遇到
!!foo
在程序员的生活中,作为将
foo
强制为
boolean
的一种方式,在您的情况下,没有区别[由于前面提到的德摩根定律],所以请坚持您更容易理解的方法


值得补充的是:

是二进制运算符->的值为2,因为它们比较两件事

另一方面,求反运算符(
)有一个arity one,因为它将其唯一的参数求反到其布尔对应项->因此它是
[true,false]


这就是为什么您可能会遇到
!!在程序员的生活中,foo
是将
foo
强制为
boolean

的补充!(a==b)is
a!=b
,同样地!(a==b)相当于
a!==b
。至少有一个区别,即==执行类型强制和!==不。是对
的补充!(a==b)
is
a!=b
,同样地!(a==b)相当于
a!==b
。至少有一个区别,即==执行类型强制和!==没有。这个答案真的给我解开了一些谜团。谢谢你提供的信息链接。表演怎么样?它们中的任何一个会对性能产生负面影响吗?性能确实取决于代码的编译方式,但大多数编译器都理解DeMorgan定律,并且会找到将代码写入内存的最佳方式。但是,总的来说,除非您在汇编级别编写代码,否则任何性能影响都可能可以忽略不计,在这种情况下,您可以计算每种情况所需的周期数,并确定哪种情况更快。这种方法的大部分应用是在卡诺图中,卡诺图用于从复杂方程中去除不重要的状态。这个答案确实给我解开了一些谜团。谢谢你提供的信息链接。表演怎么样?它们中的任何一个会对性能产生负面影响吗?性能确实取决于代码的编译方式,但大多数编译器都理解DeMorgan定律,并且会找到编写代码的最佳方法