truthy / falsy
truthy / falsytruthy / falsy
Tworząc warunki, nie musimy porównywać ze sobą dwóch wartości. Wartością false staje się każda z poniższych wartości. Są to tak zwane wartości falsy:
if (false) {...}
if (null) {...}
if (undefined) {...}
if (0) {...}
if (NaN) {...}
if ("") {...}
if (document.all) {...}
Dla nas oznacza to tyle, że tworząc warunki możemy wykonywać kod w zależności od stanu danej zmiennej, ale też wartości wpisanej ręcznie w nawias:
const a = 20;
const b = 0;
const c = null;
if (a) { //to się wykona bo a !== 0
console.log("A ma wartość ", a);
}
if (b) { //to się nie wykona bo b === 0
console.log("A ma wartość ", b);
}
if (c) { //to się nie wykona bo null
console.log("A ma wartość ", c);
}
if (false) { //to się nie wykona bo false to false
console.log("false ma wartość ", false);
}
Każda inna wartość daje w rezultacie true. Możemy to sprawdzić konwertując dane wartości na Boolean:
Boolean(false); //false
Boolean(null); //false
Boolean(undefined); //false
Boolean(0); //false
Boolean(NaN); //false
Boolean(""); //false
Boolean(document.all); //false
Boolean("Ala"); //true
Boolean(2); //true
Boolean(2 - 2); //false
const x;
Boolean(x); //false bo x nie ma wartości czyli undefined
Powyższe sprawia, że dość często spotkasz zapisy jak poniżej:
if (nr) { //kod się wykona jeżeli wartość liczby nr jest różna od falsy
...
}
const txt = "Ala ma kota";
if (txt.length) { //sprawdzam długość tekstu. Jeżeli większa od 0 to true
...
}
const tab = []
if (tab.length) { //podobnie sprawdzam długość tablicy
...
}