Robimy dłuższy przystanek przy jednym z kolejnych typów danych w języku JavaScript i teraz zerkniemy na typ "boolean", gdyż oprócz przedstawienia jego zastosowania należy jeszcze wyjaśnić to, co widzieliśmy w poprzednim artykule, a mianowicie dlaczego można w tym języku wstawić za warunek samą zmienną i nie zostanie to uznane za błąd składniowy ✅. Zapraszam serdecznie do środka 😉!

O TYPIE DANYCH "BOOLEAN" W JĘZYKU JAVASCRIPT, ALE RÓWNIEŻ O WIELU JEGO WCIELENIACH!

Dla ścisłości: "boolean" to logiczny typ danych reprezentujący jedną z dwóch wartości ("true" albo "false"). Stosuje się go do zmiennych, lecz jego największym skupiskiem są instrukcje warunkowe, w której wynik powstaje przez ustalenie prawdziwości podanego warunku 💡. Na przykład warunek:

6 > 2

da wynik prawdziwy, gdyż nierówność jest jak najbardziej spełniona ✅.

Jednak nie o tym chciałem napisać w tym artykule. Głównie skupimy się na tym, co JESZCZE jest traktowane jak wartość logiczna, a czego nie widać na pierwszy rzut oka 😳!

WARTOŚCI TRAKTOWANE JAK "FAŁSZ"

Możesz w tej chwili poczuć zbicie z tropu, jednak..."boolean" w języku JavaScript pojawia się także w innych typach danych 💥! Mało tego, jeżeli inny typ danych posiada specyficzną wartość, to jest już z góry "fałszywy" ❌. Oto zestawienie określonych wartości, które "nadają fałsz" 😜👇:

WARTOŚĆ OPIS
false Fałszywa wartość logiczna.
null Typ danych "null".
undefined Typ danych "undefined".
0 Wartość zero typu "number".
-0 Wartość "minus zero" typu "number".
0n Wartość zero typu "BigInt".
NaN "Not a Number" (pojawia się podczas wykonywania sprzecznych operacji np. próba skonwertowania liczby, która w rzeczywistości jest łańcuchem).
"" Pusty łańcuch znaków ("string").

To wyjaśnia zagadkę dlaczego mamy prawo wstawić samą zmienną w miejsce warunku w instrukcji warunkowej i nie zostanie to potraktowane jak błąd składniowy ✅:

let result = 80;

if(result) {
    // instrukcje
}

W ukryciu przed nami, w języku JavaScript robi jedną rzecz: zamienia wartość typu "number" na "boolean". Ponieważ zmienna "result" ma jakąś konkretną wartość, nie jest typem "null" ani "undefined", ani żadną inną z powyższej tabeli, więc warunek zostanie uznany za spełniony i instrukcje zostaną wykonane 👍.

Także zapamiętaj: w języku JavaScript, typ danych "boolean" znajduje się również w pozostałych typach danych i przyjmuje on wartość fałszywą, jeśli dany typ danych przyjmuje specyficzną wartość ⚠️.

ZWROT WARTOŚCI PRZEZ KONIUNKCJĘ

Że co 🤯?! Tak, dobrze czytasz 😁. Jak pisałem we wprowadzeniu do serii, język JavaScript jest specyficzny i posiada w sobie parę "kontrowersyjnych" manewrów, których nie znajdziesz w wielu innych powszechnie stosowanych językach wysokiego poziomu. O samej koniunkcji było już podczas opisywania operatorów relacyjnych, więc tylko odeślę gdzie trzeba i wrócę do sprawy ℹ️.

JavaScript pozwala na użycie koniunkcji do zwracania konkretnej wartości (dokładnie jak operator warunkowy), z tym że można dać tyle, ile się chce. Najcięższe może być zrozumienie KIEDY dochodzi do zwrócenia jakiej wartości. Koniunkcja działa tak, że weryfikuje WSZYSTKIE warunki jeden po drugim i przestaje to robić kiedy natrafi na FAŁSZ, ponieważ jeden fałsz powoduje zwrócenie wyniku fałszywego ❌ i dalsze weryfikacje już nie są potrzebne, bo i tak to nie zmieni wyniku. Sprawdzając jedną wartość po drugiej, "odpuszcza sobie" kiedy dana wartość jest FAŁSZYWA.

Dokładnie wtedy następuje zwrot konkretnej wartości – kiedy wartość jest fałszywa. Kiedy wszystkie są prawdziwe, zwraca wtedy tę ostatnią w kolejce 💡. Mówimy o takich wartościach, że są "truthy" 🙂.

Spójrz na ten przykład 👇:

console.log(true && 8 > 2 && "Koniunkcja");

Wynikiem będzie wartość łańcuchowa, gdyż wszystkie wartości są prawdziwe, więc skupi się na ostatniej ✅.

Koniunkcja zwracająca wartość logiczną w języku JavaScript

Koniunkcja może zwracać wartość spośród danych wyrażeń lub wartości i zwraca tę, która przyjmuje wartość fałszywą (moment, w którym dalsze sprawdzanie nie wpłynie na rezultat).

ZWROT WARTOŚCI PRZEZ ALTERNATYWĘ

Alternatywa tak samo, ona też może zwracać wartość spośród kilku wariantów! Ponieważ jednak ma inną zasadę działania, trzeba wyjaśnić i ten mechanizm 🔧.

Alternatywa także weryfikuje WSZYSTKIE warunki i przestaje to robić, kiedy natrafi na wartość prawdziwą z racji tego, że to też już nie zmieni wyniku 💡. Sprawdzając jedną wartość po drugiej, "odpuszcza sobie" kiedy dana wartość jest PRAWDZIWA. Więc kiedy dochodzi do zwrócenia wartości? Kiedy jest prawdziwa 😄. W sytuacji, gdy wszystkie staną się fałszywe, zwraca ostatnią w kolejce (odwrotnie do koniunkcji 😉).

Oto prosty przykład 👇:

console.log(false || null || "Alternatywa");

W wyniku tego wyrażenia, otrzymamy łańcuch, bo "false" i "null" nie należą do wartości "truthy" ℹ️.

Alternatywa zwracająca wartość logiczną w języku JavaScript

Alternatywa może zwracać wartość spośród danych wyrażeń lub wartości i zwraca tę, która przyjmuje wartość prawdziwą (moment, w którym dalsze sprawdzanie nie wpłynie na rezultat).


Nie zdziwię się, jeśli ten materiał przyniósł o wiele więcej znaków zapytania, niż wszystkie poprzednie razem wzięte 😰. Można się pogubić, bo tu znowu "odzywa się" oryginalność tego języka 🙂. Dziękuję za przeczytanie i pamiętaj, że to normalne nie móc tego zrozumieć od razu. Spokojnie i po kolei, a wszystko będzie w porząsiu 😉.

PODOBNE ARTYKUŁY