function is_undefined(value) { var undefined_check; // instantiate a new variable which gets initialized to the real undefined value return value === undefined_check; } This works because when someone writes undefined = "foo" he only lets the name undefined reference to a new value, but he doesn't change the actual value of undefined. More @Wikipedia
Hover over any link to get a description of the article. Please note that search keywords are sometimes hidden within the full article and don't appear in the description or title.