I always thought I could just check an undefined var by comparing it to undefined, but this is the error I get in the chrome console :
Process 1:
if (jQuery) {
// jQuery is loaded
} else {
// jQuery is not loaded
}
Process 2:
if (typeof jQuery == 'undefined') {
// jQuery is not loaded
} else {
// jQuery is loaded
}
if(jQuery)
should be enough, shouldn't it?
From here
if(typeof jQuery == "undefined") {
document.write("undefined");
}else{
document.write("Exists");
}
The variable called "jQuery" in your code has never been declared, so it will throw an error like "xxx(variable name) is not defined".
You can use the typeof
operator to check is a variable is undefined or not
if (typeof(jQuery) == "undefined")
You can use : if( typeof jQuery !== 'undefined')
or
Do what is recommended by mozilla
if('jQuery' in window)
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/undefined
There are several solutions:
Use typeof
. It is a special operator and will never result in a ReferenceError
. It evaluates to "undefined" for, well, the undefined
value or for a variable which does not exist in context. I'm not a fan of it, but it seems very common.
Use window.jQuery
. This forces a "property lookup": property lookups never fail, and return undefined
if said property does not exist. I've seen it used in some frameworks. Has the downside of assuming a context (usually window
).
Make sure the variable is "declared": var jQuery; if (jQuery) { /* yay */ }
. Doesn't seem very common, but it is entirely valid. Note that var
is just an annotation and is hoisted. In the global context this will create the "jQuery" property.
Catch the ReferenceError
. Honestly, I have never seen this nor do I recommend it, but it would work.
Happy coding.