If it is undefined, it will not be equal to a string that contains the characters "undefined", as the string is not undefined. You can check the type of the variable:
While literally using the keyword undefined, Boolean(undefined) works, trying that with an undefined variable doesn't work, and that is the whole point of doing the check for null or undefined.
NaN. See for yourself. console.log (null-undefined). The difference between null and undefined is NaN. (Note that this is an attempt at humour, before you flame me for misunderstanding the question.)
The biggest misconception in many of the answers here is that 'undefined' is a Javascript keyword. It's not a keyword at all, but a variable that (most of the time) happens to be undefined. So the only time "somevar === undefined" works is when the 'undefined' variable really hasn't been defined.
I can't find any difference between typeof somevar == 'undefined' and typeof somevar === 'undefined', because typeof always returns string. For null it will return 'object'. Or could be that I am wrong?
typeof foo !== 'undefined' window.foo !== undefined 'foo' in window The first two should be equivalent (as long as foo isn't shadowed by a local variable), whereas the last one will return true if the global varible is defined, but not initialized (or explicitly set to undefined).
390 The jQuery Core Style Guidelines suggest two different ways to check whether a variable is defined. Global Variables: typeof variable === "undefined" Local Variables: variable === undefined Properties: object.prop === undefined Why does jQuery use one approach for global variables and another for locals and properties?
How do I check a variable if it's null or undefined and what is the difference between the null and undefined? What is the difference between == and === (it's hard to search Google for "===" )?
undefined is a variable, not a constant, and can be assigned a value. Because of this, one school of thought says the second path is safer, since you cannot be sure of the value of undefined. There is another school of thought that says those who redefine undefined deserve exactly what they get.