Operator typeof
w JavaScript jest używany do określania typu danej zmiennej lub wyrażenia. Jest to przydatne narzędzie podczas debugowania lub gdy potrzebujemy podjąć decyzję w oparciu o typ danych. W tej lekcji przyjrzymy się, jak używać typeof
oraz jakie są jego ograniczenia.
Jak używać typeof
Aby użyć typeof
, po prostu umieść słowo typeof
przed zmienną lub wyrażeniem, którego typ chcesz sprawdzić. Operator ten zwróci string opisujący typ danych.
console.log(typeof "Hello, World!"); // "string"
console.log(typeof 42); // "number"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object" - to znany błąd w JavaScript
console.log(typeof {}); // "object"
console.log(typeof []); // "object" - tablice są traktowane jako typ obiektów
console.log(typeof function(){}); // "function"
Uwagi dotyczące użycia typeof
typeof null
zwraca"object"
, co jest historycznym błędem w JavaScript. Mimo żenull
nie jest obiektem, poprawienie tego błędu mogłoby spowodować problemy z kompatybilnością w istniejącym kodzie wielu stron internetowych, dlatego nigdy nie będzie to zrobione- Tablice (
[]
) i daty są w praktyce obiektami, więctypeof
zwróci"object"
dla tych typów. Aby dokładniej określić, czy dany obiekt jest tablicą, używamyArray.isArray()
.
Przykład użycia typeof
w warunkach
Operator typeof
może być przydatny w instrukcjach warunkowych, gdy chcemy wykonać różne akcje w zależności od typu danych.
let item = "Hello, World!";
if (typeof item === "string") {
console.log("Item jest stringiem.");
} else if (typeof item === "number") {
console.log("Item jest liczbą.");
} else {
console.log("Item jest innego typu.");
}
Ograniczenia typeof
Chociaż typeof
jest użytecznym narzędziem, ma swoje ograniczenia. Na przykład, nie jest w stanie rozróżnić pomiędzy różnymi typami obiektów (poza funkcjami), takimi jak daty, tablice czy niestandardowe obiekty. Dla wszystkich tych, typeof
zwróci po prostu"object"
.
Podsumowanie
Operator typeof
jest prostym i przydatnym narzędziem do sprawdzania typów danych w JavaScript. Pozwala szybko zidentyfikować podstawowy typ zmiennej lub wyrażenia, co jest szczególnie przydatne podczas debugowania i tworzenia programów reagujących na typy wartości w zmiennych. Należy jednak pamiętać o jego ograniczeniach, zwłaszcza niezdolności do rozróżnienia pomiędzy różnymi rodzajami obiektów oraz błędnym zwracaniem "object"
dla null
.
Jeżeli chcesz przyśpieszyć swoją naukę chciałbym polecić mój kurs video JavaScript w którym nauczysz się tego języka od podstaw do zaawansowanych jego koncepcji.