292 Kapitel 7
truthy und falsey
if ([]) {
// das hier passiert
}
var element = document.getElementById("elementDasExistiert");
if (element) {
// und das hier auch
}
if (1) {
// wird so kommen
}
var string = "Gnade mir";
if (string) {
// das hier wird auch passieren
}
Was JavaScript als falsey ansieht
Noch mal: Das Geheimnis des Verständnisses von truthy und falsey
besteht darin, zu lernen, was falsey ist, und den Rest als truthy zu
betrachten.
In JavaScript gibt es fünf falsey-Werte:
undefined ist falsey.
null ist falsey.
0 ist falsey.
Der leere String ist falsey.
Das heißt, alle Bedingungstests der vorigen Seite evaluieren zu false.
Haben wir schon gesagt, dass alle anderen Werte truthy sind (natürlich
abgesehen von false)? Hier ein paar Beispiele für truthy-Werte:
Um sich zu merken, welche
Werte truthy sind und
welche falsey, merken
Sie sich einfach die fünf
falsey-Werte: undefined,
null, 0, "" und NaN.
Alles andere ist truthy
(»irgendwie wahr«).
Dies ist ein Array. Es ist nicht undefined,
null, 0, "" oder NaN. Es muss also truthy sein.
Hier ist das Elementobjekt vorhanden. Es ist
auch nicht falsey, also ist es truthy.
Nur die Zahl 0 ist falsey,
alle anderen sind truthy.
Nur der leere String ist falsey,
alle anderen Strings sind truthy.
NaN ist falsey.
Sie sind hier � 293
Typen, Gleichheit, Umwandlung und der ganze Rest
Zeit für einen kleinen Test am Lügendetektor. Stellen Sie fest, wie viele Lügen
der Täter erzählt hat und ob er im Sinne der Anklage schuldig ist. Hierfür müs-
sen Sie herausfinden, welche Werte truthy und welche falsey sind. Überprüfen
Sie Ihre Antwort am Ende dieses Kapitels, bevor Sie weiterlesen. Und probieren
Sie den Code ruhig auch im eigenen Browser aus.
function lieDetectorTest() {
var lies = 0;
var stolenDiamond = { };
if (stolenDiamond) {
console.log("Sie haben den Diamanten gestohlen");
lies++;
}
var car = {
keysInPocket: null
};
if (car.keysInPocket) {
console.log("Ich glaube, Sie haben das Auto gestohlen!");
lies++;
}
if (car.emptyGasTank) {
console.log("Sie haben das Auto nach dem Diebstahl gefahren!");
lies++;
}
var foundYouAtTheCrimeScene = [ ];
if (foundYouAtTheCrimeScene) {
console.log("Ein sicheres Zeichen für Ihre Schuld");
lies++;
}
if (foundYouAtTheCrimeScene[0]) {
console.log("Mit Diebesgut erwischt!");
lies++;
}
var yourName = " ";
if (yourName) {
console.log("Sie haben einen falschen Namen angegeben");
lies++;
}
return lies;
}
var numberOfLies = lieDetectorTest();
console.log("Sie haben " + numberOfLies + " Mal gelogen!");
if (numberOfLies >= 3) {
console.log("Schuldig im Sinne der Anklage");
}
Ein String mit einem Leerzeichen.
Spitzen Sie Ihren Bleistift
Get JavaScript-Programmierung von Kopf bis Fuß now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.