Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Algorytmy i podstawy informatyki JavaScript

Słowa kluczowe: JavaScript Operator typeof w JavaScript Typ boolean w JavaScript Typy danych

W języku JavaScript typ boolean może być reprezentowany przez wartość

A. 45.3
B. true
C. -20
D. null

Pytanie z egzaminu CKE, styczeń 2020 (arkusz E.14-SG-20.01).

W JavaScript typ boolean reprezentuje wartości logiczne true oraz false, więc wartość true jest poprawnym przykładem typu boolean. Taki typ danych stosuje się wszędzie tam, gdzie program ma podjąć decyzję: czy użytkownik jest zalogowany, czy formularz został poprawnie wypełniony, czy pole wyboru checkbox jest zaznaczone, albo czy wynik porównania spełnia warunek. Przykładowo zapis let aktywny = true; oznacza, że zmienna aktywny przechowuje wartość logiczną. Potem można jej użyć w instrukcji if, np. if (aktywny) { ... }. Moim zdaniem to jedna z tych podstaw, które warto dobrze ogarnąć, bo boolean pojawia się praktycznie w każdym sensownym skrypcie. W standardzie ECMAScript boolean jest typem prymitywnym, tak jak number, string, undefined, bigint i symbol. Dobra praktyka w JavaScript to odróżnianie prawdziwych wartości logicznych true/false od wartości tylko traktowanych jako prawda lub fałsz, czyli tzw. truthy i falsy. Na przykład liczba -20 w warunku if też zostanie potraktowana jako prawda, ale nadal jej typem jest number, a nie boolean. Dlatego przy sprawdzaniu typu można użyć typeof true, co zwróci boolean. W profesjonalnym kodzie dobrze jest też stosować jawne porównania i operator ===, żeby uniknąć dziwnych konwersji typów, które w JavaScript potrafią człowieka zaskoczyć.
W tym pytaniu chodzi o rzeczywisty typ danych boolean w JavaScript, a nie o to, czy jakaś wartość może zostać użyta w warunku. To ważne rozróżnienie, bo JavaScript ma mechanizm automatycznej konwersji wartości do kontekstu logicznego. Liczby takie jak -20 oraz 45.3 należą do typu number. Mogą być wpisane w instrukcji if i wtedy JavaScript potraktuje je jako wartości truthy, czyli zachowujące się jak prawda w warunku. Ale to nie zmienia ich typu. Wynik typeof -20 oraz typeof 45.3 to number, więc nie są one reprezentacją typu boolean. Częsty błąd polega właśnie na mieszaniu pojęcia „wartość daje prawdę w if” z pojęciem „wartość jest typu boolean”. W praktycznym kodzie taka pomyłka może prowadzić do nieczytelnych warunków i problemów przy walidacji danych, szczególnie gdy dane przychodzą z formularza albo z API. Null też nie jest wartością logiczną. Oznacza celowy brak wartości, czyli sytuację, w której zmienna ma istnieć, ale nic sensownego jeszcze nie przechowuje. Co ciekawe, typeof null zwraca object, co jest historyczną zaszłością JavaScriptu i raczej pułapką niż intuicyjną zasadą. Prawdziwy boolean to tylko true albo false. Z mojego doświadczenia najlepiej zapamiętać to bardzo prosto: boolean służy do odpowiedzi tak/nie, prawda/fałsz, włączone/wyłączone. Jeżeli wartość jest liczbą albo specjalnym znacznikiem braku danych, to może mieć jakieś zachowanie w warunku, ale nie staje się przez to typem logicznym.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.