Abfragen, ob Variable definiert ist?
Cruz
- javascript
Yello!
Wie kann ich denn Abfragen, ob eine Variable definiert ist oder nicht?
if (Object == "") geht schon mal nicht, weil er dann immer nur "Object is not defined" sagt. Ja gut, das wollte ich wissen, aber nicht unbedingt als Errormeldung. ;)
Also wie kann ich es rauskriegen, wenn ich keine if abfrage auf ein undefiniertes Object anwenden darf?
Gruß
Cruz
Wie kann ich denn Abfragen, ob eine Variable definiert ist oder nicht?
if (Object == "") geht schon mal nicht, weil er dann immer nur "Object is not defined" sagt. Ja gut, das wollte ich wissen, aber nicht unbedingt als Errormeldung. ;)
Also wie kann ich es rauskriegen, wenn ich keine if abfrage auf ein undefiniertes Object anwenden darf?
Hi Cruz,
so geht es: a wird erfragt
function doit(){
if (typeof(a)=="undefined"){
alert("a ist nicht definiert");
}
else{
alert ("a ist definiert - gut so");
}
}
Gruß
Timothy
Hallo!
function doit(){
if (typeof(a)=="undefined"){
alert("a ist nicht definiert");
}
else{
alert ("a ist definiert - gut so");
}
}
Wenn man ueberhaupt nichts ueber die Variable weiss, und wirklich wissen will, ob sie undefined ist, muss man diesen Weg wohl gehen. Normalerweise reicht aber auch ein einfaches
if (object) ...
Wenn object undefined ist, wird dann der if-Zweig nicht ausgefuehrt. Allerdings auch nicht, wenn diese Variable existiert, aber z.B. 0 (Number), false (Boolean), "" (string) oder null (object) ist. Wenn einen diese Sonderfaelle aber nicht interessieren, reicht diese kurze Form.
So lange
if (object) ...
Wenn object undefined ist, wird dann der if-Zweig nicht ausgefuehrt. Allerdings auch nicht, wenn diese Variable existiert, aber z.B. 0 (Number), false (Boolean), "" (string) oder null (object) ist. Wenn einen diese Sonderfaelle aber nicht interessieren, reicht diese kurze Form.
Hi,
habe ich mal ausprobiert:
if (a) {...} bringt die bekannte Systemmeldung
Fehler: 'a' ist undefiniert.
Und gerade diese Meldung will Cruz doch umgehen.
Gruss
Timothy
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
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
Danke!!!
so geht es: a wird erfragt
function doit(){
if (typeof(a)=="undefined"){
alert("a ist nicht definiert");
}
else{
alert ("a ist definiert - gut so");
}
}
Hi Timothy,
Ja so klappt es danke schön!
die methode typeof habe ich allerdings nicht in Selfhtml gefunden, kennst du vielleicht eine Seite, wo mehr Javascript Befehle aufgelistet sind?
Gruß
Cruz
die methode typeof habe ich allerdings nicht in Selfhtml gefunden, kennst du vielleicht eine Seite, wo mehr Javascript Befehle aufgelistet sind?
Sorry,
ich habe mir irgendwann mal irgendwo aus dem Netz eine Kurzreferenz (in englisch)runtergeladen. Und da habe ich dies gefunden. Allerdings weiss ich die URL nicht mehr. Wenn Du sie (die Kurzreferenz) haben willst - ich kann sie Dir schicken (etwa 1 MB gezippt .
Gruss
Timothy
zu marcellm@integra-europe.de bitte!
Danke schön
Cruz
Ist raus
Schoenes Wochenende
Timothy
Hallo Cruz
SELFHTML: < http://www.teamone.de/selfhtml/tebi.htm>
Tschüs
Daniel
Hi Cruz,
also es kommt immer darauf an, zu welchem Zeitpunkt die variable definiert wird.
Ich habe einen einfachen "Trick" verwendet, um es zu umgehen. Deine Variable wird ganz am Anfang des Scripts vorbelegt, mit einem Wert, der später als Ergebnis nicht in frage kommt.
Beispiel: deine Variable belegst du mit -1.
Ich hoffe, in deinem Beispiel hilft das weiter. In meinem Problem hats geklappt.
Gruß
Thomas J.
»»Deine Variable wird ganz am Anfang des Scripts vorbelegt, mit einem Wert, der später als Ergebnis nicht in frage kommt.
Beispiel: deine Variable belegst du mit -1.
»»
Hi Thomas,
geht auch - aber dann ist es am Besten, die Variable mit dem Wert null vorzubelegen.
Kann man dann abfragen mit if (variable == null) ...
Gruß
Timothy