JavaScript 函数中的字符串或 Null 检查

String or Null check in JavaScript function

单击按钮后,应验证 id 值,如果该值不是 NA 或 null,则应加载页面,否则应抛出警报。

 <a href="#" id="check" class="button" onclick="id_check()">View ID</a><br><br>

function id_check() {
    if (id != "NA" || (id != null)) {
        // load diff page
    } else {
        alert("Something Wrong");

    }
}

但是 or ( || ) 的 if 条件没有按预期工作。当我比较 id != "NA" 时它工作正常。我在这里错过了什么?

您的条件应该是 id != "NA" && id != null,因为您希望 id 与 NA 也与 null 不同。

这里要理解的重要一点是 || 运算符短路结果。这意味着,如果第一个表达式的计算结果为真,那么该值将立即被 returned。根本不会计算第二个表达式。

在您的情况下,id != "NA" || id != null,如果数据是 null,则 id != "NA" 检查将 return true。所以,第二部分根本没有检查。

因为你希望输入数据不是NAnull,你可以在这里使用&&运算符,像这样id != "NA" && id != null

注意:if != null会returnfalse,如果idundefined,因为!= 将强制表达式。因此,最好使用严格的相等比较运算符。因此,条件将变为 if id !== "NA" && id !== null

如果 id 不为空,请使用以下代码显示 'successfully' 文本作为消息。

<a href="#" id="check" class="button" onclick="id_check(this.id)">View ID</a>

    <script>
     function id_check (id)
                 {
                //if block will execute if element id value isn't empty or Null
                     if ( id )
                     {

                        alert("Id isn't empty");
                     }else
                     {
                         alert ("Id is empty");

                     }
                 }
    </script>

我们需要将控件的id传给function.After传id我们可以根据自己的需求来验证

this.id - 它将 return 元素的 ID 作为 'id_check' 函数的参数。

参考以下 link 来验证答案 - http://jsfiddle.net/pdhsob8s/4/