为什么这个检查抛出错误,即使我事先检查了它是否未定义
Why is this check throwing an error, even if I check whether it’s undefined beforehand?
我通过AJAX调用传入了一系列JSON对象。有些数据集包含字段C
,有些不包含。当我包含以下代码时,它崩溃了。我试过undefined
和null
。两个崩溃。
if (myJsonObjects[i].C == undefined) {
// …
}
当你说崩溃时,我想你指的是TypeError: cannot read property of undefined value
它崩溃的原因是在
行中 if(myJsonObjects[i].C == undefined){
我们实际上有myJSONObject[i] === undefined
所以你需要检查你的数组边界或者确保你的数组不是稀疏的
if(myJsonObjects[i].C == undefined){
与
相似if(myJsonObjects[i] && myJsonObjects[i].C){
但是对于我的行,您检查myJsonObjects[i]
和myJsonObjects[i].c
是否为空或未定义。
如果myJsonObjects[i].c
持有false, "", 0, NaN
试试这个:
if (typeof myJsonObjects[i].C == 'undefined') {}
我想你可以先试一下再跳进水里:
if( i in myJsonObjects && myJsonObjects[i] && !( "C" in myJsonObjects[i] ) ) { }
但是你的原始代码不应该崩溃,也不应该抛出错误,如果myJsonObjects[i]
被定义并且不是null
if ('C' in myJsonObjects[i]) { do_your_magic() }
相关文章:
- 正在检查未定义的值
- 检查未定义的变量
- 检查未定义的变量在 chrome 中不起作用
- 检查未定义的值,但它仍未定义
- 检查未定义是否不起作用
- 检查未定义的 JavaScript 变量
- Javascript检查未定义的语义
- 使用速记检查未定义的对象不起作用
- 填充对象时检查未定义的对象
- 尝试检查未定义json对象的类型时出错
- 最好检查未定义属性或设置为空
- Typescript编译器/Cordova API:检查未定义的全局变量
- 检查未定义和null的不等式(!==)和检查未定义和null的柯夫不等式(!=)之间有区别吗?
- 检查未定义的javascript未命中
- 检查未定义变量的最佳JS实践是什么
- 检查未定义导致未定义错误
- 如何使用下划线检查“未定义”?在javascript
- 复选框.在OnClick事件函数中检查未定义
- $.parseJSON - 未捕获的语法错误 - 如何检查未定义
- JavaScript可选参数,我是否需要检查未定义