提问者:小点点

在Javascript中检测对象是否为空——为什么这不起作用?[重复]


我试图弄清楚为什么我通过我的JS错误控制台跟踪器从一些访问者那里得到这个错误:

未捕获的类型错误:无法读取null的属性“类列表”

有问题的代码是:

                if (typeof item == "object") {
                    item.classList.remove('active');
                    update_specific_marker(item.getAttribute('data-what'),"remove_active_icon");
                }

这一点不应该起作用吗:

if (typeof item == "object") {

我对他们如何首先获得它感到困惑 - 因为我无法从该页面出现任何错误(无论我玩了多少,即使在 Chrome 中也是如此,这似乎是它的来源)

关于我可以尝试什么的任何建议?


共2个答案

匿名用户

如果您在JS控制台中执行typeof null,它将打印对象。因此,在您的情况下,如果项目=null那么typeof项目=="对象"也将生成true

相反,您可以做的是

if(item){
  // do things
}

匿名用户

对于item=nulltypeofitem==“object”为true,因此在块中您试图访问null值的classList属性。你不能这样做,因此出现了错误。

要修复它,您将需要另一个条件来阻止 null 值访问代码。

if (typeof item == "object" && item != null)