繁体   English   中英

检查未定义的对象后,“无法读取null的属性..”

[英]“Cannot read property .. of null” after checking for undefined object

我有一个对象需要检查是否已定义。 另外,我还想检查该对象的属性是true还是false。

所以我想要的是

if ((typeof myVar !== 'undefined') && (myVar.isMale === false)) {
     // Do something 1
 }
 else{
      // Do something 2
 }

但是这种逻辑给我错误

Uncaught TypeError: Cannot read property 'isMale' of null 

处理这种情况的最佳登录方式是什么?

谢谢 !

您需要通过排除来进一步测试:

if (typeof myVar != 'undefined' && myVar && myVar.isMale === false) {

或包含:

if (typeof myVar == 'object' && mVar && myVar.isMale === false) {

但是有些对象返回带有typeof测试的“对象”以外的值(例如,宿主对象可能和函数对象一样)。

或通过显式转换:

if (typeof myVar != 'undefined' && Object(myVar).isMale === false) {

编辑

附加的&& myVar测试是捕获通过typeof测试的NaN和null。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM