W języku JavaScript deklaracja
var x;bez przypisania wartości sprawia, że zmienna x ma typ
Zmienna zadeklarowana bez wartości dostaje w JavaScripcie specjalną wartość undefined, która ma osobny typ o tej samej nazwie. Można to sprawdzić operatorem typeof: typeof x zwróci napis "undefined". Typ zmiennej zmieni się dopiero po przypisaniu, bo JavaScript typuje dynamicznie, według aktualnej wartości.
To samo dotyczy let x;. Wartość undefined zwraca też funkcja bez instrukcji return i odwołanie do nieistniejącej właściwości obiektu. Nie myl jej z null, którą programista przypisuje celowo jako „brak wartości”. Sprawdzenie, czy zmienna ma wartość: if (x === undefined).
Po przypisaniu x = 5; ta sama zmienna ma już typ number.
Każdy z błędnych typów wymagałby przypisania konkretnej wartości. Łańcuch znaków powstaje dopiero przy zapisie w cudzysłowie, np. var x = "tekst";. Pusta deklaracja nie tworzy pustego napisu "".
Typ numeryczny dostaje zmienna z liczbą, np. var x = 0;. W niektórych językach, np. w C, zmienna liczbowa bez wartości ma przypadkową zawartość, a w Javie pole klasy dostaje 0, ale JavaScript nie zakłada liczby, bo deklaracja nie podaje żadnego typu.
Typ logiczny (boolean) mają tylko wartości true i false. Wartość undefined w warunku zachowuje się jak fałsz, ale typem logicznym nie jest. Dlatego zmienna bez przypisania ma typ undefined.
W JavaScripcie to wartość decyduje o typie, a nie słowo użyte przy deklaracji.
Typ zmiennej sprawdzisz w konsoli przeglądarki: po wpisaniu var x; typeof x zobaczysz napis undefined.