JavaScript może wskazać brak wartości na kilka sposobów. Ta strona
opisuje 2 najpopularniejsze sposoby: typy danych null
i undefined
.
null
Słowo kluczowe null
oznacza celowo zdefiniowany brak wartości. null
jest obiektem podstawowym, chociaż operator typeof
zwraca, że null
jest obiektem.
To jest błąd, który spowodował przeniesienie
z pierwszej wersji JavaScriptu i celowo pozostawiono je
nierozstrzygnięte, aby uniknąć naruszenia oczekiwanego zachowania w internecie.
typeof null
> object
Zmienną możesz zdefiniować jako null
po założeniu, że odzwierciedla ona przypisaną mu wartość
w skrypcie lub jawnie nie ma żadnej wartości. Możesz też przypisać null
do istniejącego odwołania, aby wyczyścić poprzednią wartość.
undefined
undefined
to wartość podstawowa przypisana do zmiennych.
które zostały właśnie zadeklarowane, lub wartości wynikowej operacji, która
nie zwraca żadnej wartościowej wartości. Może się tak na przykład zdarzyć, gdy zadeklarujesz,
funkcja w konsoli programisty przeglądarki:
function myFunction() {}
> undefined
Funkcja jawnie zwraca wartość undefined
, gdy jej instrukcja return
nie zwraca żadnej wartości.
(function() {
return;
}());
> undefined
Porównanie: null
i undefined
Chociaż funkcje undefined
i null
częściowo się nakładają, mają one jednak
w różnych celach. W najściślejszym sensie null
reprezentuje wartość
celowo zdefiniowane jako „puste”, a undefined
oznacza brak przypisanej wartości.
Parametry null
i undefined
są luźno równe, ale nie ściśle równe.
Operator luźnej równości przekształca operandy różnych typów na wartość logiczną
przez co null
i undefined
mają zarówno wartości false
, jak i wartości. Operator ścisłej równości
uznaje operandy różnych typów danych za różne.
null == undefined
> true
null === undefined
> false
W odróżnieniu od zarezerwowanego słowa kluczowego null
, undefined
jest właściwością tagu
obiekt globalny. To był projekt
decyzji podjętej na wczesnym etapie rozwoju języka JavaScript
umożliwiło starsze przeglądarki
całkowicie zastąp undefined
. W nowoczesnych przeglądarkach nadal można używać
undefined
jako identyfikator w zakresach nieglobalnych, zastępując jego wartość w
zakres tej deklaracji. Nigdy nie używaj undefined
jako identyfikatora. it
może powodować nieoczekiwane działania i może zakłócić obsługę przyszłych użytkowników
w bazie kodu.
Sprawdź swoją wiedzę
Co zwraca typeof null
?
object
undefined
primitive
string