问题标签 [comparison-operators]

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 投票
2 回答
188 浏览

python - 有没有理由使用“是”?

而不是“==”?我知道“是”是什么,它正在比较变量的身份。但是你什么时候想要这样做?它对我所做的只是引起问题。在使用了一段时间后(因为我觉得它使我的代码更具可读性),我并没有对“is”宣战。

有人将它用于“==”不会做的事情吗?我不明白他们为什么不让'is'和'=='一样,就像他们让'and'和'&&'一样等等。如果有人想要指针,他们只需要说“id (x) == id(y)" 并且我们不会有这种混淆。

这是我不理解的python中的“陷阱”之一,并且绊倒了很多新手。我认为它绊倒人们的原因是他们不明白为什么它会进行身份比较。有什么意义(呃)?

编辑:感谢您的出色回答。我认为新人应该带走的是“除非你知道自己在做什么,否则总是使用'​​=='”!

0 投票
3 回答
4088 浏览

javascript - JavaScript 的双等号 (==) 是否总是对称的?

在许多情况下,JavaScript 的类型强制相等运算符是不可传递的。例如,请参阅“ JavaScript 相等传递性很奇怪”。

但是,是否存在==不对称情况?也就是说,在哪里a == btrueb == a哪里false

0 投票
8 回答
145209 浏览

c++ - 比较 C++ 中的结构时找不到 == 运算符

比较以下结构的两个实例,我收到一个错误:

错误是:

错误 C2678:二进制“==”:未找到采用“myproj::MyStruct1”类型的左侧操作数的运算符(或没有可接受的转换)

为什么?

0 投票
3 回答
5281 浏览

c# - 有谁知道 System 或 System.Core 中比较运算符的 .NET 枚举?

System 或 System.Core 中是否有包含所有比较运算符的枚举?

我刚刚写了以下枚举,但这似乎是一件很常见的事情,可能已经存在。

我在 System.Web.UI 中找到了一个,但是为该http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.validationcompareoperator(v =VS.100).aspx

另外,我已经看过了ExpressionType,但我不想要范围那么广的东西

0 投票
2 回答
77 浏览

php - PHP中的变量比较问题

我试图确定两个字符串是否匹配,即使我打印出来它们是相同的,它仍然说它们不匹配。我尝试将它们都转换为字符串,并尝试使用'==='而不是'==',但都没有解决问题......

0 投票
5 回答
25899 浏览

python - 为什么'True == not False'是Python中的语法错误?

将布尔值与==Python 中的作品进行比较。但是当我应用布尔not运算符时,结果是语法错误:

为什么这是语法错误?我希望not False成为一个返回布尔值的表达式,并且True == <x>在任何具有有效语法的表达式的任何地方<x>都是有效的语法。

0 投票
11 回答
155890 浏览

php - 检测负数

我想知道是否有任何方法可以检测 PHP 中的数字是否为负数?

我有以下代码:

我需要找出是否$profitloss是负面的,如果是,我需要回应它是。

0 投票
2 回答
724 浏览

logic - Stata中的三元比较运算符?

在我的 Statado脚本中,我经常需要比较可能丢失的日期。不幸的是, 的内部表示.是给定范围的最大可能数,因此以下成立:

这可能会变得非常烦人,例如在检查日期是否在某个范围内时:

而不是以下内容:

有没有办法使用与三元逻辑一起使用比较运算符

即,我希望以下陈述为真:

0 投票
7 回答
880 浏览

php - 比较,!== 与 !=

我知道这!==也用于比较变量类型,而!=只比较值。

但我看到很多人!==在比较值时使用,例如:

他们这样做有什么理由吗?是!==快于!=还是什么?

0 投票
3 回答
133 浏览

ruby-on-rails - 当左手参数是一个类时,Ruby === 不作为它

我正在使用带有 Rails 3.0.1 的 Ruby 1.8.7 并且遇到了一个问题,其根本原因似乎是“Array === object”操作。我之前在自己创建的一个类中看到了相同的行为,并通过不使用“===”运算符对其进行编程(我认为我对 Ruby 的了解存在一些缺陷,这仍然相当有限)。但现在它发生在 ActionPack 内部,我需要对此做点什么。

当 FormHelper“fields_for”没有按照应有的方式行事时,这种情况就会浮出水面。以下视图代码片段(删除“<% %>”以提高可读性):

在 form_for 辅助方法中给出了错误“ActionView::Template::Error (undefined method `model_name' for Array:Class):”。我确定它正在执行“case”命令的错误分支,设置断点并开始测试。结果如下:

这非常明确地表明,虽然“record_or_name_or_array”绝对是一个数组,但“Array === record_or_name_or_array”返回的是 false。

顺便说一句,如果您怀疑“@f.fields_for”是错误的语法,我尝试了使用和不使用“@f”。并得到相同的结果。我还重新启动了 RoR 和我的机器,结果保持不变。