如何检查变量或对象是否未定义?

时间:2011-12-16 07:23:36

标签: javascript jquery

我一直以为我可以通过比较未定义的var来检查未定义的var,但这是我在chrome控制台中遇到的错误:

enter image description here

如何检查jQuery未定义的对象?

编辑:

enter image description here

if(jQuery)也给我带来了问题

编辑:

解决方案:

if(window.jQuery)有效。 typeof(jQuery) == 'undefined'也有效。

有人可以解释原因吗?

7 个答案:

答案 0 :(得分:9)

有几种解决方案:

  1. 使用typeof。它是一个特殊的运算符,永远不会产生ReferenceError。对于上下文中不存在的变量,它的undefined评估为“未定义”。我不喜欢它,但它似乎很常见。

  2. 使用window.jQuery。这会强制执行“属性查找”:属性查找永远不会失败,如果所述属性不存在,则返回undefined。我已经看到它在某些框架中使用过。假设上下文(通常是window)的缺点。

  3. 确保变量“已声明”:var jQuery; if (jQuery) { /* yay */ }。似乎并不常见,但它完全有效。请注意,var只是一个注释,并且已被悬挂。在全局上下文中,这将创建“jQuery”属性。

  4. 抓住ReferenceError。老实说,我从来没有见过这个,也不推荐它,但它会起作用。

  5. 快乐的编码。

答案 1 :(得分:5)

流程1:

if (jQuery) {  
    // jQuery is loaded  
} else {
    // jQuery is not loaded
}

流程2:

if (typeof jQuery == 'undefined') {  
    // jQuery is not loaded  
} else {
    // jQuery is loaded
}

答案 2 :(得分:3)

来自here

if(typeof jQuery == "undefined") { 
  document.write("undefined"); 
}else{ 
   document.write("Exists"); 
} 

答案 3 :(得分:2)

据我所知,你可以做到

if(typeof X == 'undefined')

但是您可能需要查看资源加载程序。在我面前给出的答案也是正确的。

答案 4 :(得分:1)

您的代码中名为“jQuery”的变量从未声明过,因此会抛出“xxx(变量名称)未定义”之类的错误。

您可以使用typeof运算符检查变量是否未定义

if (typeof(jQuery) == "undefined")

答案 5 :(得分:0)

您可以使用: if(typeof jQuery!=='undefined')

执行mozilla推荐的内容

if('jQuery'在窗口中)

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/undefined

答案 6 :(得分:-1)

if(jQuery)应该就够了,不应该吗?