为什么我的else if语句会导致解析器抛出未定义的错误?我知道它是未定义的,这就是我正在检查的原因,我希望它在这种情况下命中else块,因为这个函数在多个地方使用,传入的数据并不总是相同的。所以我试图检查传入的数据类型。
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 :(得分:4)
因为location [0]未定义。这有点奇怪,但你的检查应该是:
if( location[0] && location[0].properties){ /* .. */}
我省略了===undefined
,这是不需要的。它会测试它是否为thruthy or falsey
这是检查JS中变量的常用方法。