Читать книгу JavaScript für Ungeduldige - Cay Horstmann - Страница 70
Hinweis
ОглавлениеFalsy- und Truthy-Werte können auch bei Schleifenbedingungen, den Operanden der booleschen Operatoren &&, || und! sowie dem ersten Operanden von ? : vorkommen. Alle diese Konstrukte werden noch weiter hinten in diesem Kapitel behandelt.
Auf den ersten Blick erscheinen die Konvertierungsregeln für boolesche Werte vernünftig. Nehmen wir an, Sie wollen lediglich sicherstellen, dass die Variable performance nicht undefined ist. Also schreiben Sie Folgendes:
if (performance) ... // Gefährlich!
Der Test schlägt zwar wie erwartet fehl, wenn die Variable performance den Wert undefined hat (und als Bonus auch, wenn sie null ist). Was aber, wenn performance ein leerer String oder die Zahl 0 ist? Soll der Test diese Fälle genauso behandeln wie das Fehlen eines Wertes? Manchmal kann das sinnvoll sein, manchmal aber nicht. Besser ist es, wenn der Code deutlich macht, was Sie wirklich erreichen wollen:
if (performance !== undefined) ...