JavaScript 相等操作对单引号字符串和数字都成功
javascript equality operation succeeds for both single quote string and number
- 我尝试检查从node.js服务器中的mongo返回的错误代码
-
两种情况下的比较都成功
-
哪一个是正确的,应该使用?
- 请原谅我对此的有限理解。
我有这样的代码
if (err['code'] == '11000') {
console.log("Single Quote String");
}
if (err['code'] == 11000) {
console.log("With out single quote");
}
输出为:
Single Quote String
With out single quote
你几乎总是应该在javascript中使用"严格相等"检查,它是三个等于:===
而不是==
当你使用==
时,JavaScript 会为了操作的目的而自由地为你做类型转换。 字符串和整数是可比的,伪造值等,您通常不应出于任何原因使用==
。
更多示例:
null == undefined; // true
null === undefined; // false
如果你真的想确定,你应该强制将值强制为同一类型。 像这样:
if ( String(err['code']) == '11000') {
console.log("Single Quote String");
}
if ( parseFloat( err['code'] ) == 11000) {
console.log("With out single quote");
}
如果你不需要用错误代码做任何数学计算,那么字符串是最简单的方法,因为如果字符串中包含某些字符,某些浏览器中的 parseFlat() 函数可能会失败。
这是解析浮子()解释的链接。
您也可以将严格相等与"==="一起使用。两者都有效!
JavaScript 不是强类型。 所以,它有点宽容。 如果您知道错误代码始终是整数,请不带单引号。
您应该使用 === 运算符。== 检查值等效性,但不查看类型。您还想查看类型。
将两行切换到 === 后,无论哪个值仍返回 true,都将是正确的响应。
相关文章:
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 测试索引值是否等于某个数字的倍数
- 尽管链接成功并已成功下载,但未找到NPM模块
- 将数字转换为一定数量的硬币
- 键入最后一位数字后自动提交
- 如何在javascript中迭代数字列表
- Javascript逻辑运算符和字符串/数字
- 如何在javascript中获得与特定数字相等的随机数
- 如果元素's的ID以数字开头
- 在另一个函数成功结束后调用该函数
- 在ajax成功后,cluetip不适用于首次点击活动元素
- 递增一个数字而不去掉前导零
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 如何在这里将两个值最低的数字相加
- 如何删除除冒号、数字和'上午'或者'下午'
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- Javascript排序字符串或数字
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- JavaScript 相等操作对单引号字符串和数字都成功
- 如何成功地操纵从用户输入中获取的数字?(HTML / JavaScript)