为什么这两个字符串是==而不是===
Why are these two strings == but not ===
我知道最后我会感到愚蠢,但我一直在为此苦苦挣扎......
if (user._id == req.params.id) {
console.log("match");
} else {
console.log("'" + user._id + "' does not match '" + req.params.id + "'");
}
这有效,比较两个相同的字符串并找到匹配项。 但是我的jshint告诉我使用这个运算符===
我理解(从这里)意味着类型也被检查。
替换我的测试失败===
,生成控制台输出,例如;
'56e0a2085b89105924963dc3' 不匹配 '56e0a2085b89105924963dc3'
我认为勾号'
证明两端都没有空格。 该文章指出类型不匹配,或者其中一个字符串是使用 new String
构造函数创建的,但我不控制生成这些类型的代码。 我该怎么办?
- 将它们转换为其他东西进行比较? ...哎呀,为了什么?
- 抑制还是忽略 jshint?这就是懒惰的开发人员以后遇到麻烦的方式
- 调试更多? ...但是怎么做呢? 我什至不知道如何记录对象的类型(在JS中,这似乎是通过语言怪异的另一次长途旅行)。
看起来你正在使用mongodb来获取objectId(我从语法中假设)。您应该检查user._id是否实际上是一个字符串而不是"ObjectId"对象。您可以暂停执行或仅使用 typeof 运算符查看user._id是否真的是一个字符串。
相关文章:
- jsf中两个字符串的颜色代码差异
- 可以't在JavaScript中比较两个字符串
- jQuery在两个字符串标识符之间选择HTML
- 为什么脚本标记被分解为两个字符串
- 比较Javascript中的两个字符串时出错
- RegEx以匹配字符串中的两个或多个名称
- js字符串转换为具有两个值的对象
- 在数字字符串的最后两个数字上加上小数
- 如何在javascript中使用string.replace.将匹配字符串开头的两个不同表达式替换为null
- 如何检查两个字符串是否具有相同的字符,包括特殊字符
- Javascript正则表达式来比较两个字符串
- 使用Javascript获取两个字符串之间的字符串数组
- 如何比较两个字符串并删除jquery中的元素
- 在Javascript中截断一个字符串,混淆了最后两个测试字符串
- 如何在jQuery中搜索两个字符之间的字符串
- 我可以在两个javascript文件之间传递一个字符串吗?
- 将具有两个此类子字符串的字符串中的第一个子字符串生成与正则表达式匹配,正则表达式通常默认匹配最后一个子字符串
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- 如何从字符串中获取两个变量
- 如何在 javascript 中使用正则表达式在其他两个字符串之间找到一个字符串