测试未声明的变量

时间:2011-04-04 16:05:52

标签: javascript variables undefined feedparser

我正在尝试使用javascript解析RSS提要。有时一个feed有多个类别,所以我想检查第2项是否有任何内容。如果我不检查我收到错误,当我使用以下代码检查时,我也会收到错误。 (如果定义了变量,我只是将var cat2设置为测试。)

var catItem = item.getElementsByTagName("category").item(2).text;

        if (typeof catItem != 'undefined'){
            var cat2 = "1"
        }
        else{

            var cat2 = "2"      
        }

4 个答案:

答案 0 :(得分:1)

检查变量是否未定义可以通过以下方式解决,如果(typeof catItem!==' undefined'){...}

但是,我只想指出未定义的变量与未声明的变量不同。你问的不是"测试未声明的变量"当你加入标题时。

未定义的变量是"声明的变量"但没有分配任何价值。未声明的变量是未使用" var"声明的变量。关键字。

答案 1 :(得分:0)

var catItem = document.getElementsByTagName("category")[2];
var cat2 = "2";

if (typeof catItem !== 'undefined') {
    cat2 = "1";
}

你也可以通过使用三元操作来缩短它:

var catItem = document.getElementsByTagName("category")[2];
var cat2 = catItem ? "2" : "1";

答案 2 :(得分:0)

只有在位置2的范围内有元素时,您的代码才有效。

为什么不这样做:

if(item.getElementsByTagName("category").length > 1) {

答案 3 :(得分:0)

您可以尝试这样的事情:

var catItem = item.getElementsByTagName("category");
if(catItem[1]) {
   ...
}
else {
   ...
}