我正在处理一些返回的 JSON 数据。
有时 JSON 会返回一些我可以通过访问的内容
var new_insert_id = data['internal']['new_insert_id'];
但有时这部分json数组数据根本不会返回,所以我需要跳过设置这个变量。
所以我写了一个简单的检查来确保在尝试设置变量之前这个数据存在:
if(typeof data['internal']['new_insert_id'] != 'undefined')
{
// if data['internal']['new_insert_id'] is defined, then..
var new_insert_id = data['internal']['new_insert_id'];
}
但是当 JSON 返回并且没有 new_insert_id 时,我收到以下错误:
Uncaught TypeError: Cannot read property 'new_insert_id' of undefined
它指向罪魁祸首的代码行是我的 if 语句行。
我错过了什么?我认为我的 if 语句会检查它是否存在,或者在使用数组时我是否需要做其他事情?
最佳答案
除了你可以先检查data['internal']
是否存在,你也可以使用pythonic方式,即应用try/catch
block :
try {
var new_insert_id = data['internal']['new_insert_id'];
} catch (e) {}
关于javascript - 为什么这个简单的 javascript 语句不能检查变量是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15112443/