【发布时间】:2011-02-22 15:36:51
【问题描述】:
可能重复:
Javascript === vs == : Does it matter which “equal” operator I use?
如标题所述;什么时候应该使用 === 运算符检查使用 JavaScript,什么时候不使用。
编辑:找到更完整的答案here。感谢 Mark Byers 指出。
_L
【问题讨论】:
标签: javascript operators logical-operators
可能重复:
Javascript === vs == : Does it matter which “equal” operator I use?
如标题所述;什么时候应该使用 === 运算符检查使用 JavaScript,什么时候不使用。
编辑:找到更完整的答案here。感谢 Mark Byers 指出。
_L
【问题讨论】:
标签: javascript operators logical-operators
它是严格的类型相等运算符。它不仅检查两个 value 是否相等,而且检查 type 是否相同。
考虑比较数字或字符串时的情况:
if (4 === 4) // same value and type
{
// true
}
但是
if (4 == "4") // same value and different type but == used
{
// true
}
和
if (4 === "4") // same value but different type
{
// false
}
这适用于对象和数组。
所以在上述情况下,你必须做出明智的选择是使用==还是===
当您确定类型时,最好使用===
【讨论】:
您使用它来检查变量的包含值和类型是否与比较的相同。
【讨论】:
当您希望禁止隐式类型转换时。例如:
3 == '3'
是true,而这不是:
3 === '3'
Douglas Crockford 建议始终使用严格比较。
【讨论】:
null 和undefined 进行比较时,if (foo == null) 需要作业,或者在使用 typeof 运算符时,您也不需要它,因为它会总是返回一个字符串...if (typeof foo == "undefined") 就足够了...