如何检查变量的长度与属性'长度'未定义的?

时间:2016-09-10 12:24:03

标签: javascript

我有一个变量,我们称之为myNiceVar,我需要检查myNiceVar值& length,myNiceVar变量是未定义的,对于JavaScript编译器,这意味着变量已定义但尚无任何值



var myNiceVar;

if(myNiceVar.length){
  console.log("I have value!"); 
}else{
   console.log("I am empty"); 
}




现在JavaScript返回:

  

未捕获的TypeError:无法读取属性'长度'未定义的

如何检查类似的内容并且不会出现任何错误

3 个答案:

答案 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) { ... }