Hallo,
Man kann schon in der Deklaration auf den Variablenwert zugreifen, er ist dann undefined. Es kommt natürlich NaN heraus, wenn man undefined + 1 rechnet. Okay, das ist Quatsch. Aber dieses Pattern ist eigentlich in Ordnung:
var foo = foo || [1,2,3];
var foo = foo || [1, 2, 3];
fehlerfrei in JSLint: "Global foo"
Gruß
jobo