如何检查变量或对象是否未定义?
我一直以为我可以通过比较未定义的var来检查未定义的var,但这是我在chrome控制台中得到的错误:
如何检查jQuery未定义的对象?
编辑:
if(jQuery)也给了我一些问题
编辑:
方案:
if(window.jQuery)
有效。 typeof(jQuery) == 'undefined'
适用。
谁有人解释为什么?
有几种解决方案:
-
使用
typeof
。 它是一个特殊的运算符,永远不会导致ReferenceError
。 它评估为“未定义”,以及undefined
值或上下文中不存在的变量。 我不是它的粉丝,但它似乎很常见。 -
使用
window.jQuery
。 这会强制执行“属性查找”:属性查找永远不会失败,如果所述属性不存在则返回undefined
。 我已经看到它在某些框架中使用过。 有假设上下文(通常是window
)的缺点。 -
确保变量是“声明的”:
var jQuery; if (jQuery) { /* yay */ }
var jQuery; if (jQuery) { /* yay */ }
。 似乎并不常见,但它完全有效。 请注意,var
只是一个注释并被提升。 在全局上下文中,这将创建“jQuery”属性。 -
捕获
ReferenceError
。 老实说,我从未见过这个,也不推荐它,但它会起作用。
快乐的编码。
过程1:
if (jQuery) { // jQuery is loaded } else { // jQuery is not loaded }
过程2:
if (typeof jQuery == 'undefined') { // jQuery is not loaded } else { // jQuery is loaded }
从这里开始
if(typeof jQuery == "undefined") { document.write("undefined"); }else{ document.write("Exists"); }
据我所知,你可以做到
if(typeof X == 'undefined')
但是您可能需要查看资源加载器。 在我面前给出的答案也是正确的。
您的代码中名为“jQuery”的变量从未被声明过,因此会抛出“xxx(变量名称)未定义”之类的错误。
您可以使用typeof
运算符来检查变量是否未定义
if (typeof(jQuery) == "undefined")
你可以使用:if(typeof jQuery!==’undefined’)
要么
做mozilla推荐的
if(’jQuery’在窗口中)
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/undefined
if(jQuery)
应该足够了,不应该吗?