JavaScript ==何时比===更有意义?
在JavaScript比较中应该使用哪个等于运算符(== vs ===)? 表示它们基本相同,除了' ===
'也确保类型相等,因此' ==
'可能会执行类型转换。 在道格拉斯克罗克福德的JavaScript中:好的部分,建议总是避免' ==
'。 但是,我想知道设计两组相等运算符的原始思想是什么。
你有没有看到任何使用' ==
'比使用' ===
'更适合的情况?
考虑一下比较数字或字符串的情况:
if (4 === 4)
{
// true
}
但
if (4 == "4")
{
// true
}
和
if (4 === "4")
{
// false
}
这适用于对象以及数组。
所以在上述情况下,您必须明智地选择是使用==还是===
简单的答案是,当你想在比较过程中发生类型强制时,'=='比'==='更有意义。
一个很好的例子就是在URL查询字符串中传递数字。 例如,如果您有分页内容,并且page
查询参数保存当前页码,那么您可以使用if (page == 1) ...
检查当前页面if (page == 1) ...
即使page
实际上是"1"
而不是1
。
我会建议使用==
没有问题,但要了解何时以及为什么要使用它(即使用===
作为规则,并且==
用于目的)。 从本质上讲, ==
只是给你速记符号 - 而不是做类似的事情
if (vble === 0 || vble === "" || vble === null || vble === undefined || vble === false) ...
只写就容易多了
if (vble == false) ...
(或者更容易写)
如果(!vble)...
当然,除了寻找“真理”或“虚假”的价值之外,还有更多的例子。
真的,你只需要了解什么时候以及为什么要使用==
和===
,我没有看到任何理由为什么不使用==
哪里适合更好......
另一个例子是使用这种简写方式来允许速记方法调用:
function func(boolOptionNotCommonlyUsed) {
if (boolOptionNotCommonlyUsed) { //equiv to boolOptionNotCommonlyUsed == true
//do something we rarely do
}
//do whatever func usually does
}
func(); //we rarely use boolOptionNotCommonlyUsed, so allow calling without "false" as an arg
链接地址: http://www.djcxy.com/p/19419.html