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 | |
---|---|
Schreibbar | nein |
Aufzählbar | nein |
Konfigurierbar | nein |
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.
// 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.
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:
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.
// 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:
if ("x" in window) {
// These statements execute only if x is defined globally
}
void-Operator und undefined
Der void
-Operator ist eine dritte Alternative.
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 GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
undefined |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support