如何检查属性“length”为未定义的变量的长度?[重复]
2016-09-10
7458
我有一个变量,我们将其称为
myNiceVar
,我需要检查
myNiceVar
的值和长度,
myNiceVar
变量未定义,对于 JavaScript 编译器来说,这意味着该变量已定义但还没有任何值
var myNiceVar;
if(myNiceVar.length){
console.log("I have value!");
}else{
console.log("I am empty");
}
现在 JavaScript 返回:
Uncaught TypeError: Cannot read property 'length' of undefined
如何检查类似的东西并且不出现任何错误
3个回答
您可以检查
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");
}
Nina Scholz
2016-09-10
试试这个
var myNiceVar;
if (myNiceVar !== null && typeof myNiceVar === 'object' && 'length' in myNiceVar) {
console.log("I have value!");
} else {...}
H D Ahir
2016-09-10
类型为
undefined
的项目(并且它是一个类型)没有
length
属性 - 只有类型为字符串和数组的项目才有。因此,正如 @redneb 所说,在检查长度之前,请扩展您的条件以检查非假值。
if (myVar && myVar.length) { ... }
Mitya
2016-09-10