我有一种情况,我声明一个对象 var o = null;
然后,我将它传递给一个函数,执行一些操作,并可能为其分配一个对象。
稍后,我执行parse(o.page)
。
如果 o
为 null,则我得到“TypeError: o.page is null”,
程序在那里停止,因为我试图获取空值的属性。
我知道一种解决方案可能是最初将 null 分配给 o
的所有属性。
只是想知道是否有更微妙的方法来处理此错误。
因为我想处理 parse1(o);
和 parse2(o.page1)
,其中 o
可以为 null。
最佳答案
您可以使用三元运算符来执行此操作:
parse2(o ? o.page1 : null)
当o
为null
时,无法让o.page
独立工作。
还存在其他方法,例如返回 {}
而不是 null
,因为调用不存在的属性会产生 undefined
而不是抛出错误。
一般来说,建议避免无效调用在代码中持续存在的情况。要么在使用返回值之前检查它(如上所示),要么不返回会使后续代码无效的值。
关于javascript - 类型错误:为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8171960/