Baseline Widely available
Die undefined
globale Eigenschaft repräsentiert den primitiven Wert undefined
. Es ist einer von JavaScripts primitiven Typen.
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
.
undefined
ist eine Eigenschaft des globalen Objekts. Das bedeutet, es ist eine Variable im globalen Bereich.
In allen nicht veralteten Browsern ist undefined
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 Typ undefined
. Eine Methode oder Anweisung gibt ebenfalls undefined
zurück, wenn der ausgewerteten Variable kein Wert zugewiesen wurde. Eine Funktion gibt undefined
zurück, wenn kein Wert zurückgegeben
wurde.
Hinweis: Auch wenn Sie undefined
als Bezeichner (Variablenname) in jedem Bereich auÃer dem globalen Bereich verwenden können (weil undefined
kein reserviertes 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önnen undefined
und die strikten Gleichheits- und Ungleichheitsoperatoren 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: Hier muss der strikte Gleichheits Operator (im Gegensatz zum standardmäÃigen Gleichheits Operator) verwendet werden, da x == undefined
auch überprüft, ob x
null
ist, während die strikte Gleichheit dies nicht tut. Dies liegt daran, dass null
nicht gleich undefined
ist.
Siehe Vergleich und Gleichheit für Details.
typeof Operator und undefinedAlternativ kann typeof
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 errors
if (typeof x === "undefined") {
// these statements execute
}
// Throws a ReferenceError
if (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 das globale Objekt gebunden, daher kann die Existenz einer Variablen im globalen Kontext durch Ãberprüfen der Existenz einer Eigenschaft auf dem globalen Objekt mit dem in
Operator festgestellt werden, zum Beispiel:
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 Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4