Jul 16

Sichere und kompakte Eigenschaftenabfrage

Tag: JavascriptPatrick @ 8:24 pm

Auf der Seite Getting Things Coded wird ein interessantes Verfahren beschrieben, wie man die Existenz eines Knotens und die Existenz einer oder mehrerer Eigenschaften des Knotens kompakt und fehlerfrei überprüfen kann.

Es ist bekannt, dass null nicht nur keine Eigenschaften besitzt, sondern auch deren Existenz kann nicht überprüft werden. So gibt null.Eigenschaft einen Fehler anstelle des Wertes undefined zurück.

Eine If-Anfrage, wie die nachfolgende, produziert also immer einen Fehler sobald nextSibling fehlschlägt – kein unmittelbar nachfolgender Knoten existiert – oder node den Wert null besitzt.

if (node.nextSibling.className == ...) {
...
}

Die Lösung besteht darin, alle möglichen Überprüfungen abzufragen. Das kann dann schnell ziemlich viel werden und so entsteht dann eine Struktur wie im nächsten Beispielcode.

if (
(node) &&
(node.nextSibling) &&
(node.nextSibling.className == ...)
... ) {
...
}

Um dem entgegen zu wirken, bedienen wir uns eines kleinen Tricks, der den boolschen Ausdruck vereinfacht. Der Trick besteht darin eine Alternive in Form eines leeren Objektes {} oder der 0 anzubieten.

So entsteht dann ein Gebilde wie das folgende:

if (((node || 0).nextSibling || 0).className == ...) {
...
}

Hinterlasse einen Kommentar

You must be logged in to post a comment.