I have just run a very simple JavaScript performance test (don\'t ask why). The test declares a variable, but doesn\'t assign anything to it:
var x;
You're comparing against the lookup of a variable called undefined
(which returns an undefined value), so it's not doing what you were intending.
There are ways to check whether a variable is undefined. As the other posters have mentioned, typeof x === 'undefined'
is one. (There's probably another possibility that is something like hasOwnProperty('x')
executed on the global object, but that doesn't check the scope chain.)