Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Js检查是否有一个或多个变量未定义_Javascript_If Statement_Var - Fatal编程技术网

Javascript Js检查是否有一个或多个变量未定义

Javascript Js检查是否有一个或多个变量未定义,javascript,if-statement,var,Javascript,If Statement,Var,假设我有多个变量: var a = 1; var b = 2; var c; var d = 4; var e; 我想检查其中一个(或多个)是否为空,在本例中为var c和var e。 有可能一次全部检查吗 谢谢 这就是你想要的吗 var a = 1; var b = 2; var c; var d = 4; var e; [a, b, c, d, e].some(function(x){return typeof x === "undefined";}); 我认为javascript没有

假设我有多个变量:

var a = 1;
var b = 2;
var c;
var d = 4;
var e;
我想检查其中一个(或多个)是否为空,在本例中为var c和var e。 有可能一次全部检查吗

谢谢

这就是你想要的吗

var a = 1;
var b = 2;
var c;
var d = 4;
var e;

[a, b, c, d, e].some(function(x){return typeof x === "undefined";});

我认为javascript没有内省功能,所以你不能只在本地范围内找到所有变量。

你不能。如果全部检查是你的目标,那么你应该将它们分组

尝试改用关联数组

var items = {
    a:1,
    b:2,
    d:4
};

//Check empty
if(items.c === undefined){
    console.log('c is empty');
}
如果对项目进行迭代,则只会得到已设置的变量。让我们换一种方式试试

null
是表示项为空的另一种方式,可能您实际上希望变量存在

var items = {
    a:1,
    b:2,
    c:null,
    d:4,
    e:null
};

//Check empty
for(var item in items){
    if(items[item] === null){
        console.log(item, 'is empty');
    }
}

使用typeof。例如,c的类型==='undefined'@Claudiu
var c;控制台日志(c)
。他说空还意味着什么?@Claudiu从他的例子和对其他答案的评论中我想这很清楚。@Claudiu:检查空的最安全的方法是在javascript中使用typeof c=='undefined'
{}
,而不是一个关联数组。你需要
Map
。@simonzack老实说,我说的是@simonzack:JavaScript中目前没有
Map
。有些人将对象称为关联数组。这不是最好的描述,但重点是可以理解的。@cookiemonster@cookiemonster很多地方都实现了它,但是,如果你没有它,你可以使用polyfill。直接使用
{}
是一个糟糕的选择。更好的选择是使用
Object.create(null)