JavaScript: Überprüfen Sie, ob die Variable existiert und ob sie dem Wert javascript entspricht

Ich habe drei Seiten mit dem gleichen Code und weiterauf einer der Seiten, auf denen diese Variable nicht existiert, auf den anderen beiden hat die Variable ticketType den Wert 1 oder 2. Ich muss zuerst prüfen, ob ticketType existiert und nicht undefiniert ist und zweitens herausfinden, ob es eine ist oder 2.

Diese if-Anweisung erzeugt einen Fehler:

if(typeof ticketType != undefined && ticketType == 1){}

Es sagt ticketType isn"t defined. Ich habe versucht, die if-Anweisungen zu verschachteln, um zu prüfen, ob es zuerst definiert wurde, und dachte, es würde nicht gehen und die innere if-Anweisung versuchen, aber Firebug erzeugt immer noch einen Fehler.

Irgendwelche Ideen? Es muss einen Weg geben, dies zu tun ...

Antworten:

10 für die Antwort № 1

"undefined" muss bei der Verwendung Zitate haben typeof

if(typeof ticketType != "undefined" && ticketType == 1){}

3 für die Antwort № 2

undefined sollte in Anführungszeichen stehen ...

if (typeof ticketType !== "undefined" && ticketType == 1)
{
}

BEARBEITEN

Hier reden wir nicht darüber global.undefiniert das muss nicht in Anführungszeichen eingeschlossen werden. Wir sprechen über den Rückgabetyp von typeof Betreiber Das ist eine Zeichenfolge. Übrigens gibt der typeof für undefinierte Variable "undefined" zurück und muss daher in string eingeschlossen werden.

// ticketType is not defined yet

(typeof ticketType !== undefined) // This is true
(typeof ticketType === undefined) // This is false
(typeof ticketType !== "undefined") // This is false
(typeof ticketType === "undefined") // This is true

var ticketType = "someValue"; // ticketType is defined

(typeof ticketType !== undefined) // This is still true
(typeof ticketType === undefined) // This is still false
(typeof ticketType !== "undefined") // This is true
(typeof ticketType === "undefined") // This is false

Also die richtige Kontrolle ist dagegen "undefined" nicht dagegen global.undefined.


0 für die Antwort № 3

Wickeln Sie es in Klammern.

if (typeof(ticketType) !== "undefined" && ticketType === 1)


0 für die Antwort № 4

Die Fehlermeldung ist ziemlich klar. Versuche damit:

var ticketType;
if(typeof ticketType != undefined && ticketType == 1){}

Sie können nicht nur auf eine Variable verweisen, die nicht existiert. Sie können dies nur beim Zuweisen von:

ticketType = 1;

Der Browser reklamiert weil ticketType ist eine unbekannte Kennung. Wenn wir es jedoch zuerst deklarieren (auch ohne ihm irgendeinen Wert zuzuweisen), wird es bekannt, aber mit undefined Wert.


0 für die Antwort № 5
if(typeof ticketType != "undefined" && ticketType == 1){}

Ich denke du brauchst die Anführungszeichen um das undefinierte Wort herum. Zumindest mache ich es immer so.


0 für die Antwort № 6

Sie suchen fälschlicherweise nach einer undefinierten Variablen, aber wenn Sie die Verwendung planen, stellen Sie einfach sicher, dass sie definiert wird.

ticketType = ticketType || 1;
if (ticketType === 1) {
//do stuff
}

Wie alle anderen gezeigt haben, ist die Standardmethode zur Überprüfung auf undefinierte Werte in JS:

typeof somevar === "undefined"

0 für die Antwort № 7

Die korrekte Syntax ist:

if (typeof ticketType !== "undefined" && ticketType === 1) { }

Das Ergebnis der typeof Operator ist immer eine Zeichenfolge. Siehe hier: http://www.javascriptkit.com/javatutors/determinevar2.shtml


-1 für die Antwort № 8

einfach mit console.log (someVar);


Verwandte Fragen