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

阿提耶夫·乔普拉(Ateev Chopra)

我有一个对象需要检查是否已定义。另外,我还想检查该对象的属性是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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章