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:
- Typy proste (prymitywne):
number,string,boolean,null,undefined,bigint,symbol. - Typy referencyjne (złożone):
object(w tym tabliceArrayi funkcjeFunction).
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()lubNumber().
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.