问题标签 [equality-operator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
37495 浏览

python - 比较包含 NaN 的 numpy 数组

对于我的单元测试,我想检查两个数组是否相同。简化示例:

这不起作用,因为nan != nan. 最好的方法是什么?

0 投票
6 回答
18900 浏览

javascript - JavaScript - === vs == 运算符性能

几周前,我读过这个线程< 比 <= 快吗?关于比较运算符C。据说它们之间的性能没有差异,<因为<=它们被解释为相同/相似的机器命令。

同时,在我们公司的“最佳实践”中,有人说我们应该始终使用“===”来比较事物,而不是“==”。所以,我开始怀疑这是否总是合适的,因为我习惯使用“==”和“typeof ... ==”并且不想改变我的写作方式:-]

请注意,这是在 JavaScript 的上下文中。

所以,我做了一点研究,在这里JavaScript 比较中应该使用哪个等于运算符(== vs ===)?据说:

这是因为相等运算符 == 确实类型强制...意味着解释器隐式尝试转换值然后进行比较。

另一方面,恒等运算符 === 不进行类型强制,因此在比较时它不会转换值的值

我开始怀疑这是否意味着当我使用“===”运算符时,我会获得良好的性能,因为不会花费任何资源来转换操作数。而在所有的代码都变成了机器命令之后,这是否意味着就像C你使用<and的时候没有区别<=一样,这在 JavaScript 和其他语言中也是一样的?

0 投票
1 回答
1223 浏览

javascript - JavaScript 相等操作异常

我正在做一个关于难以理解的 JavaScript 代码的讲座,当然 JavaScript 的弱点是知道 == / === 会返回什么。我在堆栈中找到了这个很好的答案,它很好地涵盖了这个主题 - JavaScript 比较中应该使用哪个等于运算符(== vs ===)?

引起我注意的一件事(可能是因为我直到现在才意识到)是您可以使用字符串对象而不是原语,并且您会在您的条件下得到不同的结果 -

我想对其进行测试,并使用字符串对象发现了一些不太直观的结果-

乃至

一开始我认为这是一个浏览器错误,但我在 chrome 和 Firefox 上都对其进行了测试。因此,如果有人可以分享更多信息,我会非常高兴,如何比较文字字符串和字符串对象是真实的,但比较两个“相等”的字符串对象是虚假的

0 投票
4 回答
4724 浏览

perl - == , = 和 eq 之间的区别

我想知道这些之间的区别:

0 投票
3 回答
10580 浏览

python - 当熊猫系列包含nan时比较它们是否相等?

我的应用程序需要比较有时包含 nans 的 Series 实例。==这会导致使用失败的普通比较,因为nan != nan

比较此类系列的正确方法是什么?

0 投票
4 回答
87 浏览

c++ - if 语句中的相等比较

对不起这个问题,这是我的第一个 C++ 项目,我有点困惑。我要求用户输入 3 个单独的内容。例如,我从一个数字 80 开始。我要问用户 3 个问题。1)你喜欢蓝色还是黄色?输入 1 表示蓝色,输入 2 表示黄色。如果用户为蓝色输入 1,则将数字 80 乘以 2。如果他们为黄色输入 2,则将 80 乘以 3。

有人可以告诉我这看起来是否在正确的轨道上吗?再次感谢并为初学者的问题感到抱歉。

0 投票
4 回答
200 浏览

java - JAVA中关于相等运算符(兼容操作数)的查询

我是 JAVA 新手,正在使用相等运算符。在尝试了几种操作数组合之后,我对 Java 中相等运算符(==)的兼容操作数的确切定义有点困惑。

所以,在我看来,相等运算符的兼容操作数应该有一些正式的定义。请帮助我澄清这个疑问。

0 投票
7 回答
7248 浏览

javascript - 为什么 new String('hello') === new String('hello') 评估为 False?

为什么以下语句在 JavaScript 中返回 false?

0 投票
1 回答
1288 浏览

javascript - 为什么 {} == false 评估为 false 而 [] == false 评估为 true?

为什么在javascript中{} == false 评估为falsewhile[] == false评估?true

0 投票
1 回答
65 浏览

c++ - C++ 中相等运算符中两个 = 之间的空格是否合法?

我目前正在从“使用 C++ 解决问题”(第 9 名,W. Savitch)中学习 C++。这本书展示了一个while循环的例子。while 循环如下所示。

ans是类型char。布尔表达式似乎试图使用相等运算符,并且在//compound statementthis 的上下文中是有意义的。但是,我一直认为空格在相等运算符中是非法的。ie==是合法的,但是= =是非法的。

当我复制代码并编译它时,我的编译器会在遇到“预期表达式”时抛出错误,就= =好像我试图将表达式分配给变量一样。我几乎可以肯定这是书中的一个错字。但是,以防万一这本书试图抛出一个曲线球,我想我会问......

非常感谢!