以最佳、快速和最小的方式检查变量是否存在 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));
大家好,我有一些 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));