Wilhelm Faber

IT, Software Engineer, Streetfotograf aus Ratingen

JavaScript

JavaScript und Typisierung, warum das so wichtig ist....

| Keine Kommentare

Auch in JavaScript findet die Beachtung der Typisierung eine große Rolle und erspart einige Fehler. Warum das so ist möchte ich an der folgenden Aufgabe zeigen.

Die Aufgabe besteht darin zwei Variablen auf Unterschiede zu vergleichen und einen neuen Wert aus b in c zu setzen.

var a = false; var b = true;

if (a && b && a !== b) { c = b; console.log('set_state'); } else { console.log('nein') }

In diesem Fall liefert die Bedienung immer „nein“, da in der Bedienung nicht nur das Vorhandensein der Variable, sondern auch deren Inhalt mit ausgewertet wird.

if (a != undefined && b != undefined && a !== b) { console.log('set_state'); c = b; } else { console.log('nein') }

Diese Lösung ist besser, die Variablen können zwar erzeugt worden sind, sind aber null. In diesem Fall wird ein ungültiger State in c geschrieben. Hier muss man also zusätzlich auf null prüfen.

if ( a != undefined && a != null && b != undefined && b != null && a !== b ) { console.log('set_state'); c = b } else { console.log('nein') }

Richtige Lösung aber sehr umständlich.

Wie macht man es nun besser?

if (typeof a == 'boolean' && typeof b == 'boolean' && a !== b) { console.log('set_state'); c = b } else { console.log('nein') }

Sollte die Variable nicht gesetzt ist, wäre die Prüfung mit typeof == ‚undefined‘.

Sollte die Variable null sein, wäre das Ergebnis der Prüfung mit typeof == ‚object‘

Wie man sieht, lässt eine explizite Prüfung auf einen Typ viel Arbeit ersparen und gibt somit die Fehler nicht weiter.

In der Kategorie Entwicklung findest du weitere interessante Artikel zum Thema Entwicklung.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.