undefined
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Dieundefined
globale Eigenschaft repräsentiert den primitiven Wertundefined
. Es ist einer von JavaScriptsprimitiven Typen.
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, obx
null
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 |
Browser-Kompatibilität
Siehe auch
MDN-Feedback-Box
Diese Seite wurde automatisch aus dem Englischen übersetzt.