我有一个变量,我们称之为myNiceVar
,我需要检查myNiceVar
值& length,myNiceVar
变量是未定义的,对于JavaScript编译器,这意味着变量已定义但尚无任何值
var myNiceVar;
if(myNiceVar.length){
console.log("I have value!");
}else{
console.log("I am empty");
}

现在JavaScript返回:
未捕获的TypeError:无法读取属性'长度'未定义的
如何检查类似的内容并且不会出现任何错误
答案 0 :(得分:2)
您可以检查typeof
等于'object'
以及length
是否为关键。
不要忘记先检查null
,因为null
是没有属性的对象。
var myNiceVar;
if (myNiceVar !== null && typeof myNiceVar === 'object' && 'length' in myNiceVar) {
console.log("I have value!");
} else {
console.log("I am empty");
}

答案 1 :(得分:-1)
试试这个
var myNiceVar;
if (myNiceVar !== null && typeof myNiceVar === 'object' && 'length' in myNiceVar) {
console.log("I have value!");
} else {...}
答案 2 :(得分:-1)
类型为undefined
的项(它是一个类型)没有length
属性 - 只有string和array类型的项。因此,正如@redneb所说,在检查长度之前,请扩展您的条件以检查非伪造值。
if (myVar && myVar.length) { ... }