Typy danych: string, number, boolean, null, undefined
Poznaj typy prymitywne JavaScript, używaj typeof do ich sprawdzania i naucz się rozróżniać null od undefined.
Typy danych: string, number, boolean, null, undefined to bezpłatna lekcja Frontend Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Frontend Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Frontend Academy zawiera 4 lekcji w sumie.
System typów JavaScript
JavaScript jest typowany dynamicznie — typy mają wartości, a nie zmienne. Ta sama zmienna może przechowywać najpierw łańcuch znaków, następnie liczbę, a później null. Zrozumienie siedmiu typów prymitywnych zapobiega dużej liczbie błędów.
string
Łańcuchy znaków reprezentują tekst. Można używać apostrofów, cudzysłowów lub znaku backtick (literału szablonowego). Łańcuchy znaków są niemutowalne — metody operujące na łańcuchach zwracają nowe łańcuchy. Łańcuchy znaków mają właściwość .length oraz wiele wbudowanych metod.
const greeting = 'Hello';
const lang = "JavaScript";
const sentence = `I love ${lang}`; // template literal
console.log(greeting.length); // 5
console.log('hello'.toUpperCase()); // 'HELLO'
console.log(' trim me '.trim()); // 'trim me'number
JavaScript ma jeden typ liczbowy. Wszystkie liczby — całkowite i zmiennoprzecinkowe — są 64-bitowymi liczbami zmiennoprzecinkowymi (IEEE 754). Oznacza to, że 0.1 + 0.2 !== 0.3. Wartości specjalne to Infinity, -Infinity i NaN (Not a Number).
const age = 30;
const price = 19.99;
console.log(0.1 + 0.2); // 0.30000000000000004
console.log(typeof NaN); // 'number'
console.log(isNaN('hello')); // true
console.log(Number.isNaN('hello')); // false (safer check)boolean
Wartości logiczne to true lub false. Są używane w warunkach i porównaniach. Każda wartość w JavaScript ma określoną prawdziwość logiczną: wartości falsy to false, 0, '', null, undefined i NaN. Wszystkie pozostałe wartości są truthy.
const isActive = true;
const isAdmin = false;
// Falsy values:
if (0) { /* never runs */ }
if ('') { /* never runs */ }
if (null) { /* never runs */ }null
null to jawnie przypisana pusta wartość. Oznacza „celowo brak wartości”. Używaj null, gdy chcesz wyczyścić zmienną lub zasygnalizować brak wartości. typeof null === 'object' to słynny błąd JavaScript zachowany dla zgodności wstecznej.
let selectedUser = null; // no user selected yet
selectedUser = { name: 'Alice' };
selectedUser = null; // clearedundefined
undefined oznacza, że wartość nie została jeszcze przypisana. Zmienne zadeklarowane, ale niezainicjalizowane, mają wartość undefined. Brakujące argumenty funkcji mają wartość undefined. Odwołanie do brakujących właściwości obiektu zwraca undefined.
let x; // undefined
function greet(name) {
console.log(name); // undefined if called as greet()
}
const obj = {};
console.log(obj.foo); // undefinednull a undefined
null = celowy brak wartości. undefined = wartość nie została jeszcze przypisana. Ogólna zasada: pozwól silnikowi ustawić undefined, a w swoim kodzie używaj jawnie null, gdy masz na myśli „pustą wartość”.
Operator typeof
Użyj typeof, aby sprawdzić typ wartości w czasie wykonywania. Zwraca on ciąg znaków: 'string', 'number', 'boolean', 'undefined', 'object', 'function', 'bigint', 'symbol'. Pamiętaj: typeof null === 'object' to znany błąd.
typeof 'hello' // 'string'
typeof 42 // 'number'
typeof true // 'boolean'
typeof undefined // 'undefined'
typeof null // 'object' ← historical bug
typeof {} // 'object'
typeof [] // 'object'
typeof function(){} // 'function'Symbol i BigInt
Symbol: unikalny, niemutowalny identyfikator — używany jako klucz właściwości obiektu, który nie będzie kolidować z innymi kluczami. BigInt: liczby całkowite większe niż Number.MAX_SAFE_INTEGER (2^53-1). Tworzy się je za pomocą 42n lub BigInt(42). W większości prac frontendowych nie są potrzebne.
Pułapki niejawnej konwersji typów
JavaScript po cichu konwertuje typy podczas porównań i operacji. Używaj === (ścisłej równości), a nie == (luźnej równości), aby uniknąć nieoczekiwanych skutków konwersji.
0 == false // true (coercion)
0 === false // false (strict, no coercion)
'' == false // true
'5' == 5 // true
'5' === 5 // false ✓ use thisKonwersja typów
Konwertuj typy jawnie za pomocą Number(), String(), Boolean() lub parseInt() / parseFloat(). Jawna konwersja jest zawsze czytelniejsza niż poleganie na niejawnej konwersji.
Number('42') // 42
Number('') // 0
Number('abc') // NaN
String(42) // '42'
Boolean(0) // false
Boolean('hello') // true
parseInt('10px') // 10Szybkie sprawdzenie
Co zwraca typeof null w JavaScript?
Podsumowanie: typy danych JavaScript
Siedem typów prymitywnych: string, number, boolean, null, undefined, symbol i bigint. Używaj typeof do sprawdzania typów. Używaj === do porównań, aby uniknąć niejawnej konwersji. Rozróżniaj null (celowo pusta wartość) od undefined (wartość jeszcze nieustawiona). Wszystkie pozostałe wartości są obiektami.
Często zadawane pytania
Czy lekcja „Typy danych: string, number, boolean, null, undefined” jest bezpłatna?
Tak — pełny tekst „Typy danych: string, number, boolean, null, undefined” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Frontend Academy, przejdź na CoddyKit PRO. Kurs Frontend Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Typy danych: string, number, boolean, null, undefined”?
Poznaj typy prymitywne JavaScript, używaj typeof do ich sprawdzania i naucz się rozróżniać null od undefined. Ćwiczysz Frontend Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Frontend Academy?
Nie wymagamy żadnego doświadczenia. Frontend Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Typy danych: string, number, boolean, null, undefined”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Frontend Academy?
Tak. Każda lekcja Frontend Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Zmienne: let, const, var i zakres
- Typy danych: string, number, boolean, null, undefined
- Funkcje: deklaracje, wyrażenia i funkcje strzałkowe
- Sterowanie przepływem: if, else, switch, for, while