Kurschlussauswertung von Logikoperationen
tom
- javascript
Guten Tag, Leute!
In vielen Fällen muß man vor einer logischen Operation (z.B. Vergleich eines Objektes mit einer Referenz) vorher sicherstellen, daß es das Objekt wirklich gibt.
Dazu gibt es zum Glück die Möglichkeit, die Existenz von Objekten in JavaScript abzufragen.
Bei allen Anwendungsbeispielen, in denen dieses Konstrukt vorkommt, wird aber in der Regel die innere if-Abfrage (der Vergleich) komplett in eine zweite if-Abfrage (die Existenzüberprüfung) eingebettet.
Da ich aber bei einem Vergleich auf ein Objekt an deutlich anderer Stelle im Frameset zugreifen möchte, müßte ich mehrere solcher Existenzabfragen bauen und erreiche eine ziemliche Verschachtelungstiefe. Daher überlegte ich, die einzelnen Abfragen zu einer zu verbinden und die Existenzabfragen dabei mit 'und' zu verknüpfen.
Im JavaScript-Buch von Stefan Mintert finde ich etwas über die Auswertungsreihenfolge bei der Auswertung logischer Ausdrücke. Dort steht, daß die Interpetation abgebrochen wird, sobald ein Ausdruck eindeutig als wahr oder falsch interpretiert werden kann.
Wenn das stimmt, kann man viele dieser Exsistenzabfragen auch kürzer programmieren.
Daher interessieren mich in diesem Zusammenhang Erfahrungswerte. Gibt es unter bestimmten Konstellationen Probleme? Hat das schon jemand versucht?
Kann man aus
----------
if(objekt)
{
if(objekt==hansi) freu_dich();
};
-------------
auch folgendes machen:
-------------
if(objekt&&(objekt==hansi)) freu_dich();
--------------
???
Natürlich kann ich selbst ausprobieren, ob das bei mir hinhaut. Interessant ist aber natürlich, ob es unter irgendwelchen Konstellationen (Browser/OS) bekanntermaßen nicht hinhaut...
Gespannt auf Eure Antworten, tom
P.S.: Befasse mich übrigens erst seit eineinhalb Monaten mit JavaScript. Hoffe, irgendwann auch mal soweit zu sein, daß ich hier nicht nur fragen, sondern auch antworten kann ... :-)
sollte schon gehen, aber ich glaube nicht dass man die klammern machen muß
if(objekt && objekt==hansi)
sollte schon gehen, aber ich glaube nicht dass man die klammern machen muß
if(objekt && objekt==hansi)
glaube ich auch nicht....
Der Vergleich ist auch so vorrangig vor der "und"-Verknüpfung.
War nur der Lesbarkeit wegen. Damit ich in ein paar Monaten noch sehe, was ich da gemacht habe... :-)
gruß, tom