Javascript 当我检查If语句是否未定义时,为什么If语句抛出未定义的错误?
为什么我的else if语句会导致解析器抛出未定义的错误?我知道它是未定义的,这就是我检查的原因,我希望它在本例中命中else块,因为此函数用于多个位置,传递的数据并不总是相同的。因此,我试图检查传入的数据类型Javascript 当我检查If语句是否未定义时,为什么If语句抛出未定义的错误?,javascript,if-statement,Javascript,If Statement,为什么我的else if语句会导致解析器抛出未定义的错误?我知道它是未定义的,这就是我检查的原因,我希望它在本例中命中else块,因为此函数用于多个位置,传递的数据并不总是相同的。因此,我试图检查传入的数据类型 if(icon){ dv.find(".mobCol>.image").html(generateIcon(icon)); } else if(location[0].properties !== undefined){ dv.find(".mobCol>.i
if(icon){
dv.find(".mobCol>.image").html(generateIcon(icon));
}
else if(location[0].properties !== undefined){
dv.find(".mobCol>.image").html(generateIcon(location[0].properties.image));
data = location[0];
}
else{
dv.find(".mobCol>.image").html(generateIcon(location.features[0].properties.image));
data = location.features[0];
}
因为位置[0]未定义。这有点奇怪,但你的支票应该是:
if( location[0] && location[0].properties){ /* .. */}
我省略了==未定义的,这是不需要的。它测试它是否是某个东西
这是检查JS中变量的常用方法。因为位置[0]未定义。这有点奇怪,但你的支票应该是:
if( location[0] && location[0].properties){ /* .. */}
我省略了==未定义的,这是不需要的。它测试它是否是某个东西
这是检查JS中变量的常用方法。=代码>而不是==
@John,这不会解决任何解析器错误。因为您正在检查至少超过一个级别的未定义的。=代码>而不是==
@John,这不会解决任何解析器错误。因为您至少检查了未定义
的一个级别。这对我很有效!非常感谢。“如果设置了某些内容,它将返回true”则为false。如果位置[0]为null、false、0、NaN或空字符串,它也将返回false。使用链接对其进行了重新设置:)这对我很有效!非常感谢。“如果设置了某些内容,它将返回true”则为false。如果位置[0]为null、false、0、NaN或空字符串,则它也将返回false。使用链接对其进行了重新设置:)