"An object is a container of properties, where a property has a name and a value. A property name can be any string, including the empty string. A property value can be any JavaScript value except for undefined."
Das ist falsch.
Ich kann dass im FF nicht nachvollziehen, hat jmd ne Ahnung was gemeint sein könnte, gibt es JS Engines die da Probleme machen?
Nein, ich wüsste nicht, wieso das Probleme machen sollte.
Es ist halt in der Praxis schwierig, mit undefined-Properties zu arbeiten, d.h. sie von tatsächlich nicht vorhandenen abzugrenzen.
var o = { p : undefined };
o.p // ergibt undefined
o.x // ergibt undefined
if (o.p) // springt in den else-Block
if (o.x) // springt in den else-Block
typeof o.p // ergibt undefined
typeof o.x // ergibt undefined
"p" in o // ergibt true
"x" in o // ergibt false
Absichtlich würde ich deshalb nicht mit undefined-Werten arbeiten. Wenn etwas gesetzt ist, aber keinen Wert hat, dann sollte man null verwenden.
Mathias