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

Deklaracja w języku JavaScript

var x = 3.5;
powoduje, że zmienna x jest typu
A. wyliczeniowego.
B. ciągu znaków.
C. liczbowego.
D. logicznego.
Deklaracja var x = 3.5; powoduje, że zmienna x przechowuje wartość typu liczbowego, czyli w JavaScript typ number. W tym języku nie ma osobnych podstawowych typów na liczby całkowite i zmiennoprzecinkowe, jak int albo float znane z wielu innych języków. Zarówno 3, jak i 3.5 są reprezentowane jako Number, najczęściej zgodnie z formatem zmiennoprzecinkowym IEEE 754 double precision. Można to sprawdzić praktycznie poleceniem typeof x, które zwróci 'number'. To jest ważne przy obliczeniach w formularzach, sklepach internetowych, kalkulatorach cen, walidacji danych czy obsłudze animacji na stronie. Moim zdaniem warto od razu zapamiętać, że samo var nie określa typu zmiennej, tylko ją deklaruje, a typ wynika z przypisanej wartości. W nowoczesnym kodzie JavaScript częściej stosuje się let albo const, bo mają bardziej przewidywalny zakres blokowy, ale typ wartości 3.5 nadal będzie liczbowy. Dobra praktyka branżowa to sprawdzanie danych wejściowych, bo np. wartość pobrana z pola formularza często jest tekstem i dopiero trzeba ją zamienić na liczbę przez Number() albo parseFloat().
Warto tu rozdzielić dwie rzeczy: sposób deklaracji zmiennej i typ wartości, która zostaje do niej przypisana. Zapis var x = 3.5; nie oznacza zmiennej logicznej, mimo że w JavaScript liczby mogą być używane w warunkach. Liczba różna od zera jest traktowana jako wartość truthy, czyli w instrukcji if zachowa się podobnie jak true, ale to nie zmienia jej typu. Typ logiczny boolean występuje wtedy, gdy przypiszesz true albo false, na przykład var aktywny = true;. To częsty błąd myślowy: ktoś widzi, że coś działa w warunku, więc zakłada, że jest typu logicznego. Tak to nie działa, no trochę podchwytliwe jest to w JS.

Wartość 3.5 nie jest też ciągiem znaków. Tekst w JavaScript zapisuje się w cudzysłowie albo apostrofach, na przykład '3.5' lub 'abc'. Wtedy typeof da wynik 'string'. Bez znaków cytowania zapis 3.5 jest literałem liczbowym i interpreter traktuje go jako number. Ma to praktyczne znaczenie, bo dodawanie liczb i sklejanie tekstów może dawać zupełnie inne wyniki, np. 3.5 + 2 daje 5.5, a '3.5' + 2 daje tekst 3.52.

Pojęcie typu wyliczeniowego też nie pasuje do czystego JavaScript. Klasyczny enum znany jest na przykład z TypeScript, C# albo Javy, natomiast w JavaScript takie konstrukcje zwykle się emuluje obiektami, stałymi lub mapami. Standard ECMAScript definiuje podstawowe typy jak Number, String, Boolean, Undefined, Null, Symbol i BigInt, ale 3.5 jednoznacznie wpada do typu Number. Z mojego doświadczenia najlepiej utrwalić to przez test typeof, bo szybko pokazuje, co naprawdę siedzi w zmiennej, a nie co nam się wydaje po nazwie lub wyglądzie zapisu.

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.