Frage Wie kann man Variablen mit undefiniert vergleichen, wenn ich nicht weiß, ob sie existieren? [Duplikat]


Diese Frage hat hier bereits eine Antwort:

In JavaScript können Sie eine Variable deklarieren und falls ja undefined, Du kannst nachschauen variable == undefined; Ich weiß das, aber wie kannst du einen Wert vergleichen, den du noch nicht weißt, wenn er im Speicher ist?

Zum Beispiel habe ich eine Klasse, die erstellt wird, wenn der Benutzer auf eine Schaltfläche klickt. Zuvor ist die Klasse nicht definiert - sie existiert nirgends. Wie kann ich es vergleichen?

Gibt es einen Weg ohne zu benutzen? try-catch?


75
2018-05-06 06:23


Ursprung


Antworten:


Der beste Weg ist, das zu überprüfen Art, weil undefined/null/false sind eine knifflige Sache in JS. Damit:

if(typeof obj !== "undefined") {
    // obj is a valid variable, do something here.
}

Beachten Sie, dass typeof gibt immer einen String zurück und erzeugt keinen Fehler, wenn die Variable gar nicht existiert.


156
2018-05-06 07:00



if (obj === undefined)
{
    // Create obj
}

Wenn Sie umfangreiche JavaScript-Programmierung machen, sollten Sie sich angewöhnen, === und! == zu verwenden, wenn Sie eine typspezifische Überprüfung vornehmen möchten.

Auch wenn Sie eine Menge Javascript ausführen, empfehle ich Code über JSLint auszuführen http://www.jslint.com es mag auf den ersten Blick etwas drakonisch wirken, aber die meisten Dinge, vor denen JSLint warnt, werden irgendwann wieder beißen, um dich zu beißen.


39
2017-08-01 04:45



if (document.getElementById('theElement')) // do whatever after this

Testen Sie bei nicht definierten Dingen, die Fehler auslösen, den Eigenschaftsnamen des übergeordneten Objekts und nicht nur den Variablennamen - also statt:

if (blah) ...

machen:

if (window.blah) ...

2
2018-05-06 06:37



!undefined ist in JavaScript richtig. Wenn Sie also wissen möchten, ob Ihre Variable oder Ihr Objekt nicht definiert ist und Aktionen ausführen möchte, können Sie Folgendes tun:

if(<object or variable>) {
     //take actions if object is not undefined
} else {
     //take actions if object is undefined
}

1
2017-07-06 19:09



if (!obj) {
    // object (not class!) doesn't exist yet
}
else ...

-1
2018-05-06 06:48