比较运算符和逻辑运算符之间有什么区别?

时间:2015-04-24 13:50:30

标签: javascript

编辑此问题已得到解答,但我已选择为未来的读者澄清。

我研究了有关逻辑运算符!(parameter)和不等运算符!==的解释。他们不会澄清他们彼此之间的不同之处。让我们来看一个例子。

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

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

两种表达方式之间的区别是什么?两种解决方案之间是否有任何性能问题使得另一种解决方案更为可取?

3 个答案:

答案 0 :(得分:2)

在你的情况下[由于前面提到的De Morgan法律]没有区别,所以坚持使用更易读的内容。

值得补充:

Comparison operators二进制运算符 - > arity值为2,因为他们比较了两件事。

另一方面,否定运算符(!)具有arity one,因为它否定了其布尔对应的 only 参数 - >因此image[true, false]

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

答案 1 :(得分: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, >=

每个结果都是一个布尔值。所以我们可以写:

boolean areTheEqual =(x == y);

因此,他们的等待是真实的"如果x等于y。现在假设你想要一个变量" areTheyDifferent"。我们可以通过两种方式实现这一点,使用"而不是"运算符,它对布尔值起作用:

boolean areTheyDifferent = ! areTheyEqual;

或者我们可以使用" notEqual"比较

boolean areTheyDifferent = ( x != y );

所以!运算符取一个布尔值,"反转"它。你需要阅读

!=

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

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

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

例如!(x == y)

答案 2 :(得分:1)

确实存在很多不同之处,只是逻辑运行的顺序。第一个语句检查它是否相等,然后给出相反的结果。第二个检查是通过比较值来看它们是不同的,看它们是否相同,如果它们是,则返回false。

实际上它们是一样的。实际上存在一种称为DeMorgan's Law的东西来管理比较和逻辑运算符之间的相等性(即声明它们是等价的并且可以交换给在不同结构中具有相同结果的其他人)