检查变量是否未定义且不为null的函数

时间:2018-08-15 18:54:35

标签: javascript function undefined

我正在寻找一种执行以下操作的方法:

var test = 'I exist!';
var testNull = null;
var testUndefined;

function checkVar(varToCheck) {
  return typeof varToCheck != 'undefined' && varToCheck != null;
}

console.log(checkVar(test)); // Logs true
console.log(checkVar(testNull)) // Logs false
console.log(checkVar(testUndefined)) // Logs false
console.log(checkVar(undefinedVar)) // Logs false

当它尝试执行最后一行而不是false时,将引发错误:Uncaught ReferenceError: undefinedVar is not defined

我知道可以这样:

if (typeof varToCheck != 'undefined' && varToCheck != null) {
    alert('something happens!')
}

但是一旦我要检查很多变量,在我的项目中使用长条件就会变得令人讨厌。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

typeof是不必要的。同样,!==将专门检查类型,而不仅仅是虚假/真实的值。

function checkVar(varToCheck) {
  return varToCheck !== undefined && varToCheck !== null;
}

undefinedVar不是一个具有undefined值的变量,它从未被声明开头,并且如果您尝试引用它,将引发错误。 但是,如果您尝试引用未声明的对象属性,则它们不会引发错误,并将计算为undefined

答案 1 :(得分:0)

我正在寻找的是一种访问嵌套对象值的安全方式

我最终使用了一个名为 Typy 的微型库,该库完全提供了我所需的功能。

我将离开Typy和我发现的其他一些选择: