单击按钮后,应验证 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
,如果数据为null
,则id != "NA"
检查将返回true
。所以,第二部分根本没有检查。
由于您希望输入数据不是NA
和null
,因此您可以在此处使用&&
运算符,例如id ! = "NA"&& id != null
注意 if != null
将返回 false
,如果 id
是 undefined
,因为 !=
会强制表达式。因此,最好使用严格的相等比较运算符。因此,条件将变为 if id !== "NA"&& id !== null
关于javascript - JavaScript 函数中的字符串或 Null 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33183465/