如何判断一个有可能不存在的对象的值是否存在

比如我要将变量imagesList = $rootScope.chargeAccount.resultData.resultForm.emsecfeereimh.memsImages。但不确定这中间哪个环节的对象是否存在除了一下这种笨拙的写法外,还有其他的解决办法吗?我试了typeof是不行的……

imagesList = $rootScope.chargeAccount &&
                $rootScope.chargeAccount.resultData &&
                    $rootScope.chargeAccount.resultData.resultForm &&
                        $rootScope.chargeAccount.resultData.resultForm.emsecfeereimh &&
                            $rootScope.chargeAccount.resultData.resultForm.emsecfeereimh.memsImages ?
                                $rootScope.chargeAccount.resultData.resultForm.emsecfeereimh.memsImages : [];
阅读 3.8k
3 个回答
try {
    imagesList = $rootScope.chargeAccount.resultData.resultForm.emsecfeereimh.memsImages || [];
} catch (e) {
    imagesList = [];
}

说错了,js跟lua一样的。

题主,请新建一个scope吧......,这种代码99%是可以避免的。

推荐问题