Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
undefined
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Dieundefined globale Eigenschaft repräsentiert den primitiven Wertundefined. Es ist einer von JavaScriptsprimitiven Typen.
In diesem Artikel
Probieren Sie es aus
function test(t) { if (t === undefined) { return "Undefined value!"; } return t;}let x;console.log(test(x));// Expected output: "Undefined value!"Wert
Der primitive Wertundefined.
Eigenschaften vonundefined | |
|---|---|
| Schreibbar | nein |
| Aufzählbar | nein |
| Konfigurierbar | nein |
Beschreibung
undefined ist eine Eigenschaft desglobalen Objekts. Das bedeutet, es ist eine Variable im globalen Bereich.
In allen nicht veralteten Browsern istundefined eine nicht konfigurierbare, nicht beschreibbare Eigenschaft. Auch wenn dies nicht der Fall ist, vermeiden Sie, es zu überschreiben.
Eine Variable, der kein Wert zugewiesen wurde, hat den Typundefined. Eine Methode oder Anweisung gibt ebenfallsundefined zurück, wenn der ausgewerteten Variable kein Wert zugewiesen wurde. Eine Funktion gibtundefined zurück, wenn kein Wertzurückgegeben wurde.
Hinweis:Auch wenn Sieundefined alsBezeichner (Variablenname) in jedem Bereich außer dem globalen Bereich verwenden können (weilundefined keinreserviertes Wort ist), ist dies eine sehr schlechte Idee, die Ihren Code schwer wartbar und fehleranfällig macht.
// TUN SIE DAS NICHT(() => { const undefined = "foo"; console.log(undefined, typeof undefined); // foo string})();((undefined) => { console.log(undefined, typeof undefined); // foo string})("foo");Beispiele
>Strikte Gleichheit und undefined
Sie könnenundefined und die strikten Gleichheits- und Ungleichheitsoperatoren verwenden, um festzustellen, ob eine Variable einen Wert hat. Im folgenden Code ist die Variablex nicht initialisiert, und dieif-Anweisung wird als wahr ausgewertet.
let x;if (x === undefined) { // these statements execute} else { // these statements do not execute}Hinweis:Hier muss derstrikte Gleichheits Operator (im Gegensatz zumstandardmäßigen Gleichheits Operator) verwendet werden, dax == undefined auch überprüft, obxnull ist, während die strikte Gleichheit dies nicht tut. Dies liegt daran, dassnull nicht gleichundefined ist.
SieheVergleich und Gleichheit für Details.
typeof Operator und undefined
Alternativ kanntypeof verwendet werden:
let x;if (typeof x === "undefined") { // these statements execute}Ein Grund,typeof zu verwenden, ist, dass es keinen Fehler auslöst, wenn die Variable nicht deklariert wurde.
// x has not been declared before// evaluates to true without errorsif (typeof x === "undefined") { // these statements execute}// Throws a ReferenceErrorif (x === undefined) {}Es gibt jedoch eine andere Alternative. JavaScript ist eine statisch gescoped Sprache, daher kann festgestellt werden, ob eine Variable deklariert ist, indem geprüft wird, ob sie in einem umgebenden Kontext deklariert ist.
Der globale Bereich ist an dasglobale Objekt gebunden, daher kann die Existenz einer Variablen im globalen Kontext durch Überprüfen der Existenz einer Eigenschaft auf demglobalen Objekt mit demin Operator festgestellt werden, zum Beispiel:
if ("x" in window) { // These statements execute only if x is defined globally}void Operator und undefined
Dervoid Operator ist eine dritte Alternative.
let x;if (x === void 0) { // these statements execute}// y has not been declared beforeif (y === void 0) { // throws Uncaught ReferenceError: y is not defined}Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-undefined> |