javascript - 为什么当我检查 If 语句是否未定义时 If 语句会抛出未定义错误?

标签 javascript if-statement

<分区>

为什么我的 else if 语句导致解析器抛出未定义的错误?我知道它是未定义的,这就是我检查的原因,在这种情况下我希望它命中 else block ,因为这个函数在多个地方使用,传入的数据并不总是相同的。所以我正在尝试检查传入的数据类型。

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];
}

最佳答案

因为 location[0] 未定义。这有点奇怪,但您的支票应该是:

if( location[0] && location[0].properties){ /* .. */}

我省略了 ===undefined,那不是必需的。它测试它是否是 thruthy or falsey 这是在 JS 中检查变量的常用方法。

关于javascript - 为什么当我检查 If 语句是否未定义时 If 语句会抛出未定义错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50217508/

相关文章:

javascript - SQL 删除不起作用

shell - 如何在shell中的一行中编写if else?

javascript - 如何使用 JavaScript 验证多个 mcq 问题?

javascript - HTML 表格中的 "Endless scrolling"效果

mysql - mysql 中 if...end-if 存储过程出错

javascript - 在javascript中检查字符串中是否只有标点符号

java - 用户输入导致错误的 If 语句分支的输出

java - 用于搜索特定字母帮助的代码

javascript - 加载页面后使用 jquery 替换或附加文本?

javascript - vaadin 网格隐藏列