Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未声明变量的测试_Javascript_Variables_Undefined_Feedparser - Fatal编程技术网

Javascript 未声明变量的测试

Javascript 未声明变量的测试,javascript,variables,undefined,feedparser,Javascript,Variables,Undefined,Feedparser,我正在尝试使用javascript解析RSS提要。有时一个提要有多个类别,所以我想检查第2项是否有任何内容。如果我不检查,我会得到一个错误,当我使用下面的代码检查时,我也会得到一个错误。(如果变量定义与否,我将var cat2设置为一个测试) 您还可以通过使用三元运算来缩短此时间: var catItem = document.getElementsByTagName("category")[2]; var cat2 = catItem ? "2" : "1"; 您的代码只有在位置2的范围内有

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

您还可以通过使用三元运算来缩短此时间:

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

您的代码只有在位置2的范围内有一个元素时才起作用

为什么不干脆做:

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

您可以尝试以下方法:

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

如果(typeof catItem!=='undefined'){…}可以通过上面回答的以下方法检查变量是否未定义

但是,我只想指出,未定义的变量与未声明的变量不同。您所要求的不是您在标题中所说的“测试未声明的变量”

未定义变量是“已声明”但未赋值的变量。未声明的变量是未使用“var”关键字声明的变量

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