我正在尝试使用以下内容检查变量是否已定义:
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
答案 0 :(得分:1)
您需要先检查包含的对象,然后才能访问属性或数组索引。
if (variable === undefined || variable.obj === undefined || variable.obj[0] == undefined) {
console.log("yes it's undefined !")
}
答案 1 :(得分:0)
obj
属性未定义。首先,您需要检查variable
和obj
属性。之后,您可以访问并检查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)