检查变量是否未定义

时间:2015-06-25 23:32:18

标签: javascript arrays undefined

需要检查特定索引处的数组项是否包含值。可以定义或不定义阵列索引,可以定义或不定义阵列。索引处的值可以是数字,字符串或空字符串 - 如果完全定义了索引。

有什么问题

编辑 - 删除了引号

if(undefined===array[0]){
    console.log('undefined');
}

2 个答案:

答案 0 :(得分:3)

实际上是的,您错误"undefined"类型的undefined类型。

您可以写下:

if (undefined === array[0]) {
    console.log('undefined');
}

if ('undefined' === typeof array[0]) {
    console.log('undefined');
}

如果array本身可能未定义,您当然应该在之前添加检查,例如:

if (undefined === array || undefined === array[0]{
    console.log('undefined');
}

答案 1 :(得分:0)

@Tomek已经有了很好的答案,但我还是想在这里说话。您的主要问题之一是您在数组中混合数据类型,您不应该这样做。如果你的数组只包含字符串和字符串,你可以像这样轻松地检查它

if(typeof array[0] === "string" && array[0] !== "")

这将是一个javascript等价的例如C#的!string.IsNullOrEmpty

在数组中包含多个数据类型会使检查变得复杂,并且表明构造代码时出错。例如,如果您在数组中输入null会发生什么?然后Tomek的测试将失败。当然,您也可以对null进行另一次检查,但我会说重组您的数据模型会更好。