2016-09-10 27 views
-4

我有一个变量,让我们把它叫做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

试试这个:'如果(myNiceVar && myNiceVar.length)'。 – redneb

+0

@redneb谢谢我的俄罗斯朋友,那出于好奇,解决了我的问题 – user6816684

+0

,你为什么认为我是俄罗斯人?我的用户名是用俄语表示的吗? – redneb

回答

-1

尝试undefined类型的这一个

var myNiceVar; 

if (myNiceVar !== null && typeof myNiceVar === 'object' && 'length' in myNiceVar) { 
    console.log("I have value!"); 
} else {...} 
0

的项目(它是一个类型)没有length财产 - 只有字符串类型的项目,数组做。因此,正如@redneb所说,在检查长度之前,扩展您的条件以检查非伪造值。

if (myVar && myVar.length) { ... } 
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"); 
 
}

相关问题