JavaScript - 无法检查变量是否未定义

时间:2017-06-01 14:09:26

标签: javascript

我正在尝试使用以下内容检查变量是否已定义:

if(variable.obj[0] === undefined){
 console.log("yes it's undefined !")
}

并尝试过:

if ("undefined" === typeof variable.obj[0]) {
  console.log("variable is undefined");
}

然而它会抛出控制台:

Uncaught TypeError: Cannot read property '0' of undefined
at <anonymous>:1:16

3 个答案:

答案 0 :(得分:1)

您需要先检查包含的对象,然后才能访问属性或数组索引。

if (variable === undefined || variable.obj === undefined || variable.obj[0] == undefined) {
    console.log("yes it's undefined !")
}

答案 1 :(得分:0)

obj属性未定义。首先,您需要检查variableobj属性。之后,您可以访问并检查variable.obj[0]是否为undefined

尝试:

if (variable && variable.obj && typeof variable.obj[0] === 'undefined'){
    console.log("yes it's undefined !")
}

答案 2 :(得分:0)

typeof不检查&#34; parent&#34;是否存在对象。您必须检查可能不存在的所有部分。

假设variable.obj是一个对象,您将需要以下代码:

if (typeof variable === "object" && typeof variable.obj === "object" && variable.obj.hasOwnProperty("0"))

如果是数组则

if (typeof variable === "object" && typeof variable.obj === "object" && variable.obj.length > 0)