molily: Standardwert für Funktionsvariable?

Beitrag lesen

Hallo,

if(typeof x == 'undefined') x = 'default';

Wirklich mit dem _String_ 'undefined' vergleichen? Ist undefined nicht ein Keyword?

undefined ist eine Eigenschaft (also ein Unterobjekt) des »globalen« Objekts, so wie NaN und Infinity, bekannter als »objektunabhängige« Eigenschaften. undefined hat den Typ Undefined und somit den Wert undefined. x==undefined ist also möglich (wenn es der Browser denn versteht). Das funktioniert aber nur, wenn x eine zuvor deklarierte Variable (var x;) ist, also existiert, aber noch keinen bestimmten Typ und Wert erhalten hat. Das Nennen von x in der Parameterliste einer Funktion kommt var x; gleich, insofern wäre x==undefined in diesem Kontext möglich, aber nicht so zuverlässig wie typeof.

Mathias