我一直以为我可以通过比较未定义的var来检查未定义的var,但这是我在chrome控制台中遇到的错误:
如何检查jQuery未定义的对象?
编辑:
if(jQuery)也给我带来了问题
编辑:
解决方案:
if(window.jQuery)
有效。
typeof(jQuery) == 'undefined'
也有效。
有人可以解释原因吗?
答案 0 :(得分:9)
有几种解决方案:
使用typeof
。它是一个特殊的运算符,永远不会产生ReferenceError
。对于上下文中不存在的变量,它的undefined
值或评估为“未定义”。我不喜欢它,但它似乎很常见。
使用window.jQuery
。这会强制执行“属性查找”:属性查找永远不会失败,如果所述属性不存在,则返回undefined
。我已经看到它在某些框架中使用过。假设上下文(通常是window
)的缺点。
确保变量“已声明”:var jQuery; if (jQuery) { /* yay */ }
。似乎并不常见,但它完全有效。请注意,var
只是一个注释,并且已被悬挂。在全局上下文中,这将创建“jQuery”属性。
抓住ReferenceError
。老实说,我从来没有见过这个,也不推荐它,但它会起作用。
快乐的编码。
答案 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)
应该就够了,不应该吗?