undefined

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die undefined-globale Eigenschaft repräsentiert den primitiven Wert undefined. Es ist einer der primitiven Typen in JavaScript.

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 Wert undefined.

Eigenschaften von undefined
Schreibbarnein
Aufzählbarnein
Konfigurierbarnein

Beschreibung

undefined ist eine Eigenschaft des globalen Objekts. Das bedeutet, es ist eine Variable im globalen Kontext.

In allen modernen Browsern ist undefined eine nicht konfigurierbare und nicht beschreibbare Eigenschaft. Selbst wenn dies nicht der Fall ist, sollten Sie ein Überschreiben vermeiden.

Eine Variable, der kein Wert zugewiesen wurde, hat den Typ undefined. Eine Methode oder Anweisung gibt ebenfalls undefined zurück, wenn die zu bewertende Variable keinen zugewiesenen Wert hat. Eine Funktion gibt undefined zurück, wenn kein Wert zurückgegeben wurde.

Hinweis: Obwohl Sie undefined als Identifier (Variablenname) in jedem Kontext außer dem globalen Kontext verwenden können (da undefined kein reserviertes Wort ist), ist dies eine sehr schlechte Idee, die Ihren Code schwer wartbar und fehleranfällig macht.

js
// NICHT TUN

(() => {
  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önnen undefined sowie die Operatoren der strikten Gleichheit und Ungleichheit verwenden, um festzustellen, ob eine Variable einen Wert hat. Im folgenden Code ist die Variable x nicht initialisiert, und die if-Anweisung wird als wahr ausgewertet.

js
let x;
if (x === undefined) {
  // these statements execute
} else {
  // these statements do not execute
}

Hinweis: Der Operator der strikten Gleichheit (im Gegensatz zum Operator der Standardgleichheit) muss hier verwendet werden, weil x == undefined auch prüft, ob x null ist, während die strikte Gleichheit dies nicht tut. Das liegt daran, dass null nicht gleich undefined ist.

Weitere Informationen finden Sie unter Equality comparison and sameness.

typeof-Operator und undefined

Alternativ kann typeof verwendet werden:

js
let x;
if (typeof x === "undefined") {
  // these statements execute
}

Ein Grund für die Verwendung von typeof ist, dass kein Fehler ausgelöst wird, wenn die Variable nicht deklariert wurde.

js
// x has not been declared before
// evaluates to true without errors
if (typeof x === "undefined") {
  // these statements execute
}

// Throws a ReferenceError
if (x === undefined) {
}

Es gibt jedoch eine weitere 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 Kontext ist an das globale Objekt gebunden. Daher kann die Existenz einer Variablen im globalen Kontext überprüft werden, indem die Existenz einer Eigenschaft im globalen Objekt geprüft wird, z. B. mit dem in-Operator:

js
if ("x" in window) {
  // These statements execute only if x is defined globally
}

void-Operator und undefined

Der void-Operator ist eine dritte Alternative.

js
let x;
if (x === void 0) {
  // these statements execute
}

// y has not been declared before
if (y === void 0) {
  // throws Uncaught ReferenceError: y is not defined
}

Spezifikationen

Specification
ECMAScript® 2025 Language Specification
# sec-undefined

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
undefined

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch