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

JavaScript-无法检查变量是否未定义,javascript,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' o

我正在尝试使用以下方法检查是否定义了变量:

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
obj属性未定义。首先,需要检查变量和obj属性。之后,您可以访问并检查变量.obj[0]是否未定义

尝试:


在访问属性或数组索引之前,需要先检查包含的对象

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

typeof不检查父对象是否存在。您必须检查所有可能不存在的部分

假设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)

这意味着variable.obj未定义。对于我的建议,简单ifvar的可能副本足以验证null、未定义、空、Nan=>ifvariable.obj[0]Hi@Folky.H!如果其中一个答案已经解决了你的问题,请通过点击复选标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。这将表明即使未定义variable.obj,变量也已定义。如果变量未定义,它也会出错。@emissar抱歉:我将| |更改为&&。
if (typeof variable === "object" && typeof variable.obj === "object" && variable.obj.length > 0)