Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

OOP mit JavaScript Grundkurs

Test auf Existenz eines Objekts

Testen Sie unsere 2013 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
In vielen Situationen ist es entscheidend, ob ein Objekt existiert. In diesem Video lernen Sie, wie man das in JavaScript prüfen kann. Außerdem erfahren Sie, wie Sie den Typ eines Objekts bestimmen können.
06:29

Transkript

In vielen Situationen ist es wichtig zu wissen, ob ein Objekt existiert. In diesem Video schauen wir uns an, wie Sie das rausbekommen und auf welche Besonderheiten Sie zu achten haben. Dabei werden wir nebenher auch noch klären, wie Sie auf den Objekttyp eines Objektes zur Laufzeit zugreifen können. Als kleines Bonbon in diesem Video. Sie sehen, dass ich hier ein Beispiel habe mit zwei Variablen. Einmal wird hier eine Variable o1 angelegt und dann wird mit New Date ein Objekt erzeugt und die Referenz drauf wird dieser Variable zugewiesen. Diese Variable o2 ist einfach da, aber noch nicht mit einem Wert belegt. Sie werden vielleicht aus der Vergangenheit des Webs solche Browserweichen kennen: "if (document.all)", beispielsweise. Das hat man früher mal genutzt, um bestimmte Browser zu identifizieren. Das wäre jetzt eine spezifische Testmöglichkeit, ob wir einen Internet Explorer vorliegen haben. Einen alten Internet Explorer. Das haben früher, Netscape basierende Browser nicht verstanden. Und mit dem Layer Objekt hat man getestet, ob da ein Netscape Browser vorliegt. Das war im letzten Jahrtausend üblich. Was hat das mit uns zu tun? Naja, dieses "if (document.all)" setzt voraus, dass ein existierendes Objekt als "true" gewertet wird, ein nicht existierendes Objekt als "false". Und das heißt, wir könnten hier so etwas ähnliches mal machen und einfach "if(o1)" hinschreiben und dann irgendwas tun. Dieses Script ist jetzt in der Webseite eingebunden und wir können "document.write" hier in die Webseite schreiben. Also macht es Sinn, hier einen Befehl zu notieren: "document.write" und dann eine spezifische Information, die nur dann kommt, wenn o1 hier als "true" gewertet wird, und damit wäre o1 als Objekt vorhanden. Das ist so, was ich daraus schließen möchte. Ich schreibe jetzt mal o1 hin und würde mir dann den Namen der Klasse oder des Prototyps genauer genommen, sprich den Objekttyp, ausgeben lassen. Das kann man machen über eine Eigenschaft, die nennt sich "constructor.name" und dann machen wir noch einen Zeilenumbruch, dass wir diese Ausgabe gleich multifunktional testen können. Das heißt, wenn ich mir das mal speichere und in einem Browser lade, dann sollte diese Ausgabe hier kommen. Und Sie sehen, das passiert wirklich. Kopieren wir mal diesen Code hier und spielen das Gleiche für o2 durch. Das heißt, es gibt eine Variable, o2, die ist ganz offensichtlich da. Aber ich habe hier kein Objekt zugewiesen, keine Referenz auf ein Objekt. Und wenn Sie dieses Beispiel laden, werden Sie sehen, dass hier eben keine passende Ausgabe kommt. Ganz offensichtlich wird also in dem Fall, o2 als "false" gewertet. Das liegt ja auch daran, wie JavaScript durch seine lose Typisierung "true" and "false" interpretiert. Das ist hier eben nicht nur der Token "true" and "false", sondern das ist eben Null und leer auf der einen Seite oder jeder Wert, der von leer oder Null verschieden ist auf der anderen Seite. Also jeder Nullwert wird als "false" interpretiert und jeder Nicht-Nullwert als "true". Nun ist dieses Testen auf ein Objekt sprich einfach hier hinschreiben, den Namen des Objektes respetive der Variable, die auf ein Objekt verweisen soll, nicht ganz unkritisch. Es gibt Situationen, wo es geht, es gibt auch Situationen, wo es nicht geht. Das Objekt muss im sogenannten, globalen Scope vorhanden sein, dann geht so ein Test gut. Und wenn es eben nicht da ist, dann kann dieser Test auch durchaus schiefgehen. Er wird in der Regel schiefgehen. Deswegen ist es sinnvoller, oder etwas sicherer, hier auf ein "undefined" zu testen. Das heißt, wir könnten das hier auch ein bisschen modifizieren und hinschreiben, dass das "ungleich undefined" ist. Man kann das hier auch mit zwei Gleichheitszeichen, also dem ungleichen Identität notieren. Man kann hier auch das Schlüsselwort "undefined" als String notieren. Aber so funktioniert das, wie Sie sehen, auch. Im Grunde ist das die etwas saubere Notation dessen, was hier oben sowieso steht oder hier unten. Noch etwas sauber und vor allem sicherer ist, wenn Sie mit "typeof" arbeiten. Das heißt, Sie könnten hier... ...den typeof überprüfen und der muss "object" liefern. Wenn das der Fall ist, dann ist das Objekt da. Andernfalls eben nicht. Wir sehen wieder, alle drei Varianten gehen, aber die letztgenannte finde ich ehrlich gesagt am elegantesten und eigentlich auch am sichersten. Sie haben also gesehen, dass man über verschiedene Art und Weisen testen kann, ob ein Objekt existiert und ich würde zur "typeof-Variante" raten und dann auf "object" überprüfen, weil das ist im Grunde die sauberste Lösung, die sicherste Variante.

OOP mit JavaScript Grundkurs

Sehen Sie, wie Sie mit JavaScript objektorientiert programmieren können.

3 Std. 8 min (35 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:09.03.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!