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 porządku, zacznę od definicji co to takiego ▶️.
CZYM JEST "BOOLEAN" W JĘZYKU JAVASCRIPT?
"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 😳!
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" ❌.
JAKIE WARTOŚCI SĄ TRAKTOWANE JAK "FAŁSZ" W JĘZYKU JAVASCRIPT?
Oto tabela z zestawieniem określonych wartości w języku JavaScript, 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ść ⚠️.
JAK WYGLĄDA ZWROT WARTOŚCI PRZEZ KONIUNKCJĘ W JĘZYKU JAVASCRIPT?
Ż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 🏁.
KIEDY DOCHODZI DO ZWRÓCENIA WARTOŚCI PRZEZ KONIUNKCJĘ W JĘZYKU JAVASCRIPT?
Zwrot konkretnej wartości przez koniunkcję dochodzi dokładnie wtedy, gdy badana 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 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).
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 🔧.
JAK WYGLĄDA ZWROT WARTOŚCI PRZEZ ALTERNATYWĘ W JĘZYKU JAVASCRIPT?
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 PRZEZ ALTERNATYWĘ W JĘZYKU JAVASCRIPT?
Gdy badana wartość jest prawdziwa 😄. W sytuacji, gdy wszystkie są fałszywe (tzw. "falsy"), 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 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" 😉.