以最佳、快速和最小的方式检查变量是否存在 JavaScript & jQuery

Checking if variable exist JavaScript & jQuery in best and quick and smallest way

大家好,我有一些 jQuery-JavaScript 代码,它是由一些未定义的变量生成的。

我试图通过执行此代码来跳过 (undefined) 错误:

if(typeof undefined_var !== "undefined"){
    /*My code is here*/
}else{
    /*create variable*/
    /*My code is here*/
}

但问题是我有很多变量,我必须使用像这样的大代码:

if(typeof undefined_var1 !== "undefined" && typeof undefined_var2 !== "undefined" && typeof undefined_var3 !== "undefined" /* && more */ ){

它没有优化,我正在寻找比它更好的东西:

if(undefined_var1 && undefined_var2 && undefined_var3)

还有吗?

在定义变量的任何时候,将它们放在一个对象上,然后您所要做的就是检查该对象是否存在:

if (!window.myObj) {
  // Define properties:
  window.myObj = {
    prop1: 'val1',
    prop2: 'val2',
    // ...
  };
}
// proceed to use `window.myObj.prop1`, etc

您可以创建一个包含所有这些变量的数组,然后创建一个以该数组作为参数的函数。然后在函数内部使用条件(if 语句)循环遍历数组以确定是否有任何错误。例如 arr.reduce((bln, myVar) => typeof myVar === 'undefined' && bln, true)。调用该函数,它将 return true 或 false 取决于是否未定义。

var _0;
var _1;
var _2 = 'not undefined';
var _3 = 'again not undefined';

const test0 = [_0, _1]; //should return true (contains undefined)
const test1 = [_2, _3]; //should return false (doesn't contain undefined)
const test2 = [_0, _1, _2, _3]; //should return true (contains undefined)

function containsUndefined(arr){
  //loop array to determine if any are undefined
  return arr.reduce((bln, myVar) => typeof myVar == 'undefined' && bln, true);
}

console.log('test0', containsUndefined(test0));
console.log('test1', containsUndefined(test1));
console.log('test2', containsUndefined(test2));