JavaScript - 检查Undefined和Null的常用函数

时间:2014-11-08 10:17:36

标签: javascript

我的脚本中有许多变量,每个变量都可以包含一个值,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 ///////////
}

2 个答案:

答案 0 :(得分:0)

这取决于你的使用,根据你给定的条件“如果testa包含一个值,testb和testc为null或未定义”,根据你的条件,它将返回false。

答案 1 :(得分:0)

你不需要一个功能来做到这一点。对于== nullundefined值,null都适用,因此您只需要这样:

if (testa == null && testb == null && testc == null)

我假设您不想处理未声明的变量,您需要 typeof … == "undefined"测试(并且不能使用辅助函数),另见this answer