AW: [thelist] javascript detecting if function/var is already defined

liorean liorean at
Fri Nov 28 05:35:23 CST 2003

christof.hoeke at wrote:
> i found a solution myself, sorry for the post...
> 	var x //seems to put x in the current "namespace" without overwriting the current value
> 	if (x == undefined)
> 		//do something other, maybe calling function y but not x
> 	else 
> 		//do something with x, e.g. call it

Just a test:

var x = 'x';
     return [x,
         x == undefined,
         typeof x];
})(); // => [ , true, 'undefined' ]

Nope, that does not seem to work. The reason? Have a look at the 
following list:
1. Determine if member exists on an object:
//(it may exists but be undefined)
   'x' in oParent // => boolean
2. Check what type the variable is:
   typeof x // => string:
// 'undefined'|'object'|'number'|'boolean'|'function'|'string'
// ('undefined' is the result if the variable is not defined,
// independently of whether it exists or not)
3. Determine if the variable is undefined
// (assumes the existense of the variable in the first place)
   x != undefined // => boolean
4. Determine if variable autocasts to true, variants
   Boolean(x) // => boolean
   !x // => boolean (inverted)
   x || false // => anything (but false if it autocasts to false)
liorean <mailto:liorean at>

ViewStyles, ViewScripts, ToggleStyles and GraphicsInfo bookmarklets and 
Theme Switcher, Cookies Handler scripts:

More information about the thelist mailing list