即使在if子句中使用了typeof,也会出现未捕获的TypeError

时间:2014-01-07 15:05:15

标签: javascript

$.each(res.data,function(idx,val){
if (typeof val.location.longitude != 'undefined') {
 console.log(val.name + ':' + val.location.latitude + ', ' + val.location.longitude);
}

为什么这仍然是真的并返回

Uncaught TypeError: Cannot read property 'longitude' of undefined 

即使没有定义经度?

1 个答案:

答案 0 :(得分:4)

你检查错了:

if (typeof val.location != 'undefined')
  // ...

错误消息告诉您val.locationundefined,而不是“经度”属性为undefined。它是,“你好,我无法从值为undefined的东西中读取一个名为'经度'的属性的值,换句话说。