何时使用===运算符检查JavaScript?
可能重复:
Javascript === vs == : Does it matter which “equal” operator I use?何时使用===运算符检查JavaScript?
正如标题状态;什么时候应该在使用JavaScript时使用===
运算符检查,何时不使用。
编辑:更多的完整答案发现here。感谢Mark Byers指出。
_L
它是严格的类型相等运算符。它不仅检查两个是否在值相等,而且也是相同的类型。
考虑一个情况,当你比较数字或字符串:
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'
道格拉斯Crockford的建议始终使用严格比较。
说实话,当有人说“ALWAYS”做xxx时,我总是有点可疑。我可以看到将数字与字符串进行比较的情况。显然,你可以手动将字符串转换为数字,但如果JS能为你做,为什么要麻烦? :) – nico 2010-05-22 06:41:20
@ nico,同意,有些情况下你根本不需要它,一个常见的情况是当你想在一步中比较'null'和'undefined',if(foo == null)做这个工作,或者当使用'typeof'运算符时,你也不需要它,因为它总是会*返回一个字符串...'if(typeof foo ==“undefined”)'就足够了...... – CMS 2010-05-22 06:47:36
您可以使用它来检查如果一个变量的值和类型与被比较的值相同。
是的 - 我会链接到它 – ptrn 2010-05-22 06:50:11