Testen auf nicht deklarierte Variable - Javascript, Variablen, undefined, Feedparser

Ich versuche einen RSS-Feed mit Javascript zu analysieren.Manchmal hat ein Feed mehrere Kategorien, also möchte ich überprüfen, ob es unter Punkt 2 etwas gibt. Wenn ich nicht überprüfe, bekomme ich einen Fehler, und wenn ich den folgenden Code zur Überprüfung verwende, erhalte ich auch einen Fehler (ich setze var cat2 einfach als Test, wenn die Variable definiert ist oder nicht).

var catItem = item.getElementsByTagName("category").item(2).text;

if (typeof catItem != "undefined"){
var cat2 = "1"
}
else{

var cat2 = "2"
}

Antworten:

0 für die Antwort № 1
var catItem = document.getElementsByTagName("category")[2];
var cat2 = "2";

if (typeof catItem !== "undefined") {
cat2 = "1";
}

Sie können dies auch verkürzen, indem Sie eine ternäre Operation verwenden:

var catItem = document.getElementsByTagName("category")[2];
var cat2 = catItem ? "2" : "1";

1 für die Antwort № 2

Die Überprüfung, ob eine Variable nicht definiert ist, kann wie folgt durchgeführt werden: if (typeof catItem! == "undefined") {...}

Ich wollte jedoch nur darauf hinweisen, dass eine undefinierte Variable nicht mit einer nicht deklarierten Variablen identisch ist. Was Sie fragen, ist nicht "Testen auf nicht deklarierte Variable", wie Sie den Titel eingeben.

Nicht definierte Variable ist eine Variable, die "deklariert" ist, aber keinen Wert zugewiesen. Eine nicht deklarierte Variable ist eine Variable, die nicht mit einem Schlüsselwort "var" deklariert wurde.


0 für die Antwort № 3

Ihr Code würde nur funktionieren, wenn sich ein Element im Bereich von Position 2 befindet.

Warum nicht einfach tun:

if(item.getElementsByTagName("category").length > 1) {

0 für die Antwort № 4

Sie können so etwas ausprobieren:

var catItem = item.getElementsByTagName("category");
if(catItem[1]) {
...
}
else {
...
}