我的脚本中有许多变量,每个变量都可以包含一个值,undefined或null。
我注意到很多重复代码检查未定义和空值,是否可以创建常用函数?
我创建了一个常见的函数来检查所有变量是不是未定义的还是null:
JS原文:
var testa;
var testb;
var testc;
if ((typeof testa == "undefined" || testa == null) && (typeof testa == "undefined" || testb == null) && (typeof testc == "undefined" || testc == null)) {
//Do something ///////////
}
JS新:
var testa;
var testb;
var testc;
if (checkValues(testa) && checkValues(testb) && checkValues(testc)) {
//Do something ///////////
}
function checkValues (v) {
return (v == "undefined") || (v == null);
}
哪个有效。但是,如果testa包含一个值,testb和testc是null还是undefiend呢? e.g:
if ((typeof testa == "undefined" || testa == null) && (typeof testa != "undefined" || testb != null) && (typeof testc != "undefined" || testc != null)) {
//Do something ///////////
}
答案 0 :(得分:0)
这取决于你的使用,根据你给定的条件“如果testa包含一个值,testb和testc为null或未定义”,根据你的条件,它将返回false。
答案 1 :(得分:0)
你不需要一个功能来做到这一点。对于== null
和undefined
值,null
都适用,因此您只需要这样:
if (testa == null && testb == null && testc == null)
我假设您不想处理未声明的变量,您需要 typeof … == "undefined"
测试(并且不能使用辅助函数),另见this answer