Typy danych w języku JavaScript to kategorie, do których można przypisać różne wartości, takie jak liczby, ciągi znaków, wartości logiczne itp. Każda wartość w języku JavaScript ma swój własny typ danych, który określa, jakie operacje można na niej wykonać i jakie wartości może ona przyjmować. Typy danych są ważne, ponieważ umożliwiają językowi JavaScript sprawdzanie poprawności wykonywanych operacji i zapobiegają błędom w działaniu programu.
W skrócie: Typy danych to kategorie nadające kontekst wartościom, które przechowujemy w zmiennych. Dzięki typom danych interpreter JavaScript wie co jest np. liczbą (typ number) i może wykonać operacje arytmetyczne takie jak np. dodawanie.

Jakie typy danych występują w JavaScript?
Język JavaScript obsługuje następujące typy danych:
number
– liczby całkowite i zmiennoprzecinkowestring
– ciągi znaków (tekst)boolean
– wartości logicznetrue
/false
null
– oznaczenie braku wartościundefined
– oznaczenie braku zdefiniowanej wartościobject
– obiekty złożone, takie jak tablice i obiekty
Ponadto, w języku JavaScript istnieje możliwość tworzenia niestandardowych typów danych, takich jak klasy i interfejsy, ale są to zagadnienia zaawansowane i nie są szeroko stosowane w praktyce.
// Typy danych w JavaScript:
// - number (liczby całkowite i zmiennoprzecinkowe)
// - string (ciągi znaków)
// - boolean (wartości logiczne true/false)
// - null (oznaczenie braku wartości)
// - undefined (oznaczenie braku zdefiniowanej wartości)
// - object (obiekty złożone, takie jak tablice i obiekty)
// Przypisanie wartości liczbowej do zmiennej
let age = 27;
// Przypisanie ciągu znaków do zmiennej
let name = "Piotr";
// Przypisanie wartości logicznej do zmiennej
let isTired = true;
// Przypisanie wartości null do zmiennej
let emptyValue = null;
// Przypisanie wartości undefined do zmiennej
let unassignedValue;
// Tworzenie obiektu (tablicy) i dodawanie elementów
let colors = ["red", "green", "blue"];
colors.push("yellow");
// Wyświetlanie zawartości zmiennych
console.log(age); // 27
console.log(name); // "Piotr"
console.log(isTired); // true
console.log(emptyValue); // null
console.log(unassignedValue); // undefined
console.log(colors); // ["red", "green", "blue", "yellow"]
Co to znaczy, że JavaScript jest typowany dynamicznie?
JavaScript jest językiem typowanym dynamicznie, co oznacza, że nie ma konieczności wyraźnego określania typów danych zmiennej przy jej deklaracji. Dzięki temu programiści mogą przypisywać różne wartości o różnych typach do tej samej zmiennej w trakcie działania programu. Język samodzielnie sprawdza, jakiego typu jest dana wartość i dokonuje wymaganych konwersji typów w czasie wykonywania programu.
Typowanie dynamiczne umożliwia większą elastyczność w pisaniu kodu, ale może prowadzić do błędów, jeśli nie zostanie odpowiednio zarządzane.
Poniżej znajduje się przykładowy kod JavaScript, który pokazuje, jak działa typowanie dynamiczne w tym języku:
// Deklaracja zmiennej bez określenia jej typu
let dynamicValue;
// Przypisanie liczby do zmiennej (typ number)
dynamicValue = 10;
// Wyświetlenie typu zmiennej
console.log(typeof dynamicValue); // "number"
// Przypisanie ciągu znaków do zmiennej (typ string)
dynamicValue = "Hello, world!";
// Wyświetlenie typu zmiennej
console.log(typeof dynamicValue); // "string"
// Przypisanie wartości logicznej do zmiennej (typ boolean)
dynamicValue = true;
// Wyświetlenie typu zmiennej
console.log(typeof dynamicValue); // "boolean"
// Przypisanie wartości null do zmiennej
dynamicValue = null;
// Wyświetlenie typu zmiennej
console.log(typeof dynamicValue); // "object"
W powyższym kodzie zmienna dynamicValue
jest deklarowana bez określenia jej typu. Następnie przypisywane są do niej różne wartości o różnych typach, a jej typ jest wyświetlany przy pomocy funkcji typeof
. Widać, że typ zmiennej zmienia się w zależności od przypisywanej wartości, co jest cechą typowania dynamicznego.
Operacje na wartościach w zależności typów danych
Jak już wspominałem wcześniej typy danych nadają kontekst w jakim dana zmienna (wartość) może zostać użyta. Poniższy kod przedstawia sytuację, w której wykonujemy operacje arytmetyczne (dodawanie) na wartościach o różnych typach danych.
// Deklaracja i definicja zmiennej (typ number)
let x = 5;
// Wyświetlenie typy zmiennej x
console.log(typeof x); // number
// Wykonanie operacji dodawania na zmiennej typu number
console.log(x+5); // 10
// Dynamiczna zmiana wartości zmiennej (typ string)
// info: wartości typu string są umieszczane w cudzysłowie
x = "5";
// Wyświetlenie typy zmiennej x
console.log(typeof x); // string
// Wykonanie operacji dodawania na zmiennej typu number
console.log(x+5); // 55
Powyższy kod demonstruje działanie typowania dynamicznego w języku JavaScript. W pierwszej linii kodu tworzona jest zmienna x
i przypisywana jest do niej wartość liczbowa 5. Następnie wyświetlany jest typ tej zmiennej przy pomocy funkcji typeof
i wykonywana jest na niej operacja dodawania.
Kolejne linie kodu pokazują, jak zmienna x
może zmienić swój typ w trakcie działania programu. W linii 5 wartość zmiennej zostaje zmieniona na ciąg znaków „5”, co automatycznie zmienia jej typ na string
. Następnie wykonywana jest na niej operacja dodawania, ale w tym przypadku wynik jest inny niż poprzednio, ponieważ operacja ta jest interpretowana inaczej dla typu string
niż dla typu number
. Wynikiem jest ciąg znaków „55”, a nie liczba 10.

Ten przykład pokazuje, jak działa typowanie dynamiczne w języku JavaScript i jakie wyniki może ono przynieść.
O czym warto poczytać?
- Na czym polega konwersja typów? (wkrótce)
- Jak sprawdzić typ zmiennej w JavaScript?
- Typy danych przy operacjach porównania. (wkrótce)
- Czym różni się typowanie dynamiczne od twardego?
3 odpowiedzi na “Typy danych w JavaScript”
[…] https://podstawyjs.pl/typy-danych-javascript/ […]
[…] Dowiedz się czegoś o typach danych w JavaScript […]
[…] Dowiedz się więcej o typach w JavaScript […]