为什么测试char等于相同的char?

时间:2015-06-04 16:34:21

标签: javascript

通过电子商务托管公司的一些JavaScript阅读并发现了这个:

function add_wishlist()
{
    if ('1' == '1') // <-- What is this?
    {
        window.open('addtowishlist.asp?itemid=137','popup','height=300,width=550,location=no,scrollbars=no,menubars=no,toolbars=no,resizable=yes');
    }
    else
    {
        document.add.action = "add_cart.asp?action=addWishList";
        document.add.submit();
    }
}

根据我对JavaScript的基本理解,==等于运算符将在需要时尝试进行类型转换,然后比较这些值。在这种情况下,字符1与字符1进行比较,似乎总是为真。

我觉得我可能会遗漏一些东西,因为如果代码始终无法访问,为什么会有else子句?这似乎是有目的的代码,因为我无法想象很容易意外地写这个比较。然而,这个代码确实存在一些固有的邋iness,因为JavaScript程序员应习惯在同一行上编写花括号以避免任何可能的分号插入怪癖......

我在这里遗漏了什么吗?或者只是草率的代码?

1 个答案:

答案 0 :(得分:2)

开发人员有时会使用真正的语句来暂时禁用代码分支。 IMO,评论是一种更好的方法。

另一种可能性是这是由工具生成的代码,这是他们在禁用功能时获得的代码。