Przejdź do treści głównej
INF.03Frontend & JS

Typy danych i operatory porównania (== vs ===)

Zasady typowania w JavaScript oraz fundamentalna różnica między porównaniem luźnym z konwersją typu (==) a ścisłym (===).

Typy danych w JavaScript:

  1. Typy proste (prymitywne): number, string, boolean, null, undefined, bigint, symbol.
  2. Typy referencyjne (złożone): object (w tym tablice Array i funkcje Function).

Porównanie == vs ===:

  • == (równość luźna) – przed porównaniem wykonuje niejawną konwersję typów (type coercion).
  • === (równość ścisła) – porównuje zarówno wartość, jak i typ danych bez konwersji.
JAVASCRIPT
5 == '5'   // true (string '5' jest konwertowany na liczbę 5)
5 === '5'  // false (różne typy: number vs string)

null == undefined  // true
null === undefined // false

typeof null        // 'object' (historyczny błąd w JS)
typeof [1, 2, 3]   // 'object' (do tablic używaj Array.isArray())

Najczęstsze pułapki na egzaminie INF.03:

  • Wartości z pól formularzy (input.value) są zawsze ciągami znaków (string), nawet dla <input type="number">. Przed porównaniem liczbowym należy użyć parseInt() lub Number().

Chcesz sprawdzić to pojęcie w praktyce?

Przeszukaj pytania z oficjalnych arkuszy CKE powiązane z hasłem Typy danych i operatory porównania (== vs ===) lub rozpocznij trening.