Calocybe: Abfragen, ob Variable definiert ist?

Beitrag lesen

Hi!

if (a) {...} bringt die bekannte Systemmeldung
Fehler: 'a' ist undefiniert.

Mmh, das wundert mich jetzt aber. Tatsaechlich habe ich denselben Effekt. Wenn ich aber vorher schreibe

a = undefined;

dann geht das so in Ordnung. In beiden Faellen liefert typeof(a) aber undefined zurueck. Komisch, ich dachte immer undefined ist undefined? Aber offensichtlich gibt es einen Unterschied zwischen undefined weil als Wert zugewiesen und undefined weil noch nie benutzt.

Trotzdem bringt
    if (window.a)
bzw.
    if (window["a"])

in beiden Faellen keinen Fehler. Will ich also eine Eigenschaft/Methode eines Objekts (gleichbedeutend mit Element eines Arrays) abfragen, funktioniert das Verfahren. Sonst koennte man ja keine Abfragen wie
    if (document.images)
machen. Davon war ich naemlich urspruenglich ausgegegangen, und hatte keinen Grund gesehen, warum es auf dem Top level nicht genauso funzen sollte (schliesslich sind Variablen dort auch nur Eigenschaftenm des window-Objekts).

Ich erinnere mich dunkel, dass Antje und ich vor langer Zeit das Thema schon mal hatten, aber wir sind nicht bis zum Ende gekommen. Findet sich sicher irgendwo im Archiv.

So lange

Ach ja, Cruz, alle JavaScript-"Befehle" findet man natuerlich bei Netscape. Die Standardlinks:

http://developer.netscape.com/docs/manuals/javascript.html

Und von dort aus z.B.

http://developer.netscape.com/docs/manuals/js/client/jsguide/index.htm
http://developer.netscape.com/docs/manuals/js/client/jsref/index.htm