It is possible to name a variable undefined in a local scope, but it is a very bad idea because undefined is what's returned for values and properties that have not yet been created. Make undefined a variable and you lose your ability to test whether other variables and properties exist.

Noncompliant Code Example

function foo () {
   var undefined = 1; // Noncompliant
   if (nonExistantVar == undefined) { // this logic doesn't work now
     // ...
   }
 }
 

Compliant Solution

function foo () {
   var bob = 1; // anything is better than naming it 'undefined'
   if (nonExistantVar == undefined) {
     // ...
   }
 }