两种情况下的比较都成功
哪一个是正确的,应该使用?
我有这样的代码
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
答案 0 :(得分:1)
你应该几乎总是使用严格的平等'检查javascript,即三等于===
而不是==
当你使用==
时,为了操作的目的,javascript会为你做类型转换。字符串和整数可以这种方式相比,价值观等等。你通常不应该因任何原因使用==
。
更多例子:
null == undefined; // true
null === undefined; // false
答案 1 :(得分:1)
如果您确实想确定,则应将值强制为相同类型。像这样:
if ( String(err['code']) == '11000') {
console.log("Single Quote String");
}
if ( parseFloat( err['code'] ) == 11000) {
console.log("With out single quote");
}
如果您不需要使用错误代码进行任何数学计算,那么string是最简单的方法,因为如果字符串中包含某些字符,某些浏览器中的parseFlat()函数可能会失败。
Here is a link to parseFloat() explained.
您还可以使用严格相等的“===”。要么有效!
答案 2 :(得分:0)
JavaScript不是强类型的。所以,它有点宽容。如果你知道错误代码总是一个整数,那么就不要使用单引号。
答案 3 :(得分:0)
您应该使用===运算符。 ==检查值等价,但不查看类型。你也想看一下这个类型。
将两行切换为===后仍然返回true的值将是正确的响应。