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