Konwersja typów (ang. type conversion lub type coercion) to proces zmiany typu jednej wartości na inny. W JavaScript wyróżniamy dwa główne typy konwersji:
Zrozumienie mechanizmów konwersji typów jest kluczowe dla unikania błędów i pisania przewidywalnego kodu.
JavaScript automatycznie konwertuje typy w niektórych operacjach. Jest to wygodne, ale może prowadzić do nieoczekiwanych rezultatów.
Konwersja jawna polega na świadomym przekształcaniu jednego typu w inny za pomocą odpowiednich funkcji lub operatorów.
parseInt() i parseFloat() ignorują znaki po pierwszej nieprawidłowej cyfrze, natomiast Number() zwraca NaN dla nieprawidłowych stringów.
| Wartość | Boolean |
|---|---|
false |
false |
0, -0, 0n |
false |
"", '', `` |
false |
null |
false |
undefined |
false |
NaN |
false |
| Wszystkie inne wartości | true |
W JavaScript istnieją dwa operatory porównania: == (luźne porównanie) i === (ścisłe porównanie).
==)===)=== i !== zamiast == i !=, aby unikać nieoczekiwanych konwersji typów.
Konwersja typów w JavaScript może prowadzić do wielu nieoczekiwanych sytuacji. Oto najczęstsze pułapki:
NaN i porównaniaNaN nie jest równe samemu sobie! Do sprawdzania NaN używaj isNaN() lub Number.isNaN().
null i undefinedAby unikać problemów związanych z konwersją typów, warto stosować się do następujących zasad:
=== i !== zamiast == i !=.typeof lub Array.isArray() do sprawdzania typów.NaN: Pamiętaj, że NaN nie jest równe samemu sobie.Konwersja typów w JavaScript jest potężnym, ale i niebezpiecznym mechanizmem. Zrozumienie, jak działa konwersja niejawna i jawna, jest kluczowe dla pisania poprawnego i przewidywalnego kodu.
Pamiętaj, że:
===), aby unikać problemów.