我如何制作这个javascript逻辑+语法(非常简单)

时间:2013-09-12 19:05:59

标签: javascript

为什么我一直都是真的?

var _template_id = "";
if (_template_id != '0' || _template_id!="")  {
        alert("true")
}else{
    alert("false")
}

或者即使我设置_template_id =“0”,它仍然是真的......

6 个答案:

答案 0 :(得分:4)

因为您询问_template_id是否不等于“0”或者不等于“”。其中一个永远都是真的。

证明:鉴于你对(_template_id != '0' || _template_id!="")的陈述,我们假设第一部分是假的。因此_template_id == '0'为真,因此_template_id != ""为真,所以整个语句的计算结果为真。

另一方面,如果第一部分是真的,那么显然整个事情再次评估为真。

因此,陈述总是如此。

答案 1 :(得分:2)

a != b || a != cb不同时,

c始终为真。

你想要的是

if (!(_template_id == '0' || _template_id ==""))  {
    alert("true")

然后,如果您设置_template_id="0",则会根据需要获得false

答案 2 :(得分:2)

您希望&&不是||

它必须始终为真,因为"0" != "",所以其中一个或另一个始终为真。

答案 3 :(得分:1)

你可能想要

!(_template_id == '0' || _template_id == "")

如果_template_id既不是0也不是''

这相当于(感谢De Morgan's laws):

_template_id != '0' && _template_id != ""

答案 4 :(得分:0)

您想在哪里更改_template_id的值?如果你指定“”然后询问它的'0'或“”是否为真,我将永远是真的。

答案 5 :(得分:0)

你在逻辑上是错的。 使用==和|| 要么 使用!=和&&

在两种情况下都会产生相同的结果,你的情况也是如此。