Jak jsme viděli v sekci proměnných, můžeme proměnné přiřadit jakýkoli primitivní nebo neprimitivní typ hodnoty. JavaScript obsahuje dvě další hodnoty primitivního typu – null a undefined, které lze přiřadit k proměnné, která má zvláštní význam.
null
Proměnné můžete přiřadit null, což znamená, že tato proměnná aktuálně nemá žádnou hodnotu, ale bude ji mít později. Null znamená nepřítomnost hodnoty.
Ve výše uvedeném příkladu je null přiřazena proměnné myVar. To znamená, že jsme definovali proměnnou, ale zatím jsme nepřiřadili žádnou hodnotu, takže hodnota je absence.
Pokud se pokusíte najít prvek DOM například pomocí document.getElelementByID, a pokud je prvek nalezen, vrátí null. Doporučujeme proto zkontrolovat null, než s tímto prvkem něco uděláte.
Hodnota null je v podmíněném výrazu vyhodnocena jako false. Takže nemusíte používat operátory porovnání jako === nebo! == ke kontrole nulových hodnot.
nedefinováno
Nedefinováno je také primitivní hodnota v JavaScriptu. Proměnná nebo objekt má nedefinovaná hodnota, pokud před použitím není přiřazena žádná hodnota. Můžete tedy říci, že undefined znamená nedostatek hodnoty nebo neznámou hodnotu.
Ve výše uvedeném příkladu jsme nepřiřadili žádnou hodnotu proměnné s názvem „myVar“. Proměnné „myVar“ chybí hodnota. Není tedy definována.
Vy získá nedefinovanou hodnotu, když zavoláte neexistující vlastnost nebo metodu objektu.
Ve výše uvedeném příkladu funkce Sum nevrací žádný výsledek, přesto se snažíme přiřadit jeho výslednou hodnotu proměnné. V tomto případě tedy bude výsledek nedefinovaný.
Pokud ve volání funkce předáte méně argumentů, bude mít tento parametr nedefinovanou hodnotu.
Při použití v podmíněném výrazu je nedefinováno vyhodnoceno jako false.
null and undefined je jedním z hlavních důvodů k vytvoření runtime chyby v aplikaci JavaScript. K tomu dochází, pokud před použitím nezjistíte hodnotu neznámých návratových proměnných. Pokud si nejste jisti, že proměnná bude mít vždy nějakou hodnotu, je nejlepší před použitím hodnoty proměnných zkontrolovat na hodnotu null nebo nedefinovanou.
- null a undefined jsou primitivní hodnoty v JavaScriptu.
- Nulová hodnota znamená nepřítomnost.
- Nedefinovaná hodnota znamená nedostatek hodnoty.
- Nulová nebo nedefinovaná hodnota evokuje v podmíněném výrazu hodnotu false.