Der Martin: Die Energie des Verstehens

Beitrag lesen

Moin,

success: function(rueckgabe) {
if(rueckgabe != 'true') {
alert('Es ist ein Fehler aufgetreten.')
}

Das sieht sehr eigenartig aus.
Ich bin im Umgang mit dem XHR-Objekt bzw. dessen Jquery-Äquivalent ajax() nicht so firm, aber die Deklaration einer Funktion mit einem Parameter namens rueckgabe, der *in die Funktion hinein* übergeben wird, kommt mir verdächtig vor.

Man kann nur den Kopf schütteln, was für eine Kompetenz hier im Forum versammelt ist.

na, sie wird ja durch die Arroganz anderer Teilnehmer prima ergänzt. Womit ich ausdrücklich nicht deine Kompetenz in Frage stellen möchte, sondern nur deine Art zu kommunizieren.

Anstatt sich mal selbst in die Materie hineinzufuchsen (XMLHttpRequest, »Ajax«, jQuery)

Da ich selbst jquery (und andere JS-Frameworks) ablehne, werde ich mich da garantiert nicht "hineinfuchsen".
Aber das ist ja auch gar nicht der Punkt. Der Punkt ist, dass der OP hier ein Funktionsargument "rueckgabe" nennt - und das ist im Kontext dieser Funktion einfach irreführend, weil es kein Rückgabe- sondern ein Eingabewert der Funktion ist.

Und drittens ist es -vorausgesetzt, ich liegen mit Punkt zwei richtig- Unfug, einen boolschen Wert, der nur true oder false sein kann, nochmal explizit mit dem Wert true zu vergleichen, um dann true oder false herauszubekommen.
Übrigens ist if (wert) und if (wert == true) tatsächlich etwas anderes in ECMAScript, wenn wert nicht vom Typ Boolean ist.

Einen nicht-boolschen Wert explizit mit true zu vergleichen, wäre ja auch grober Unfug.

(Andernfalls ist es zwar unnötiger Code, aber nicht schädlich.)

Hmm, "schädlich"? Ja, es schadet geringfügig der Lesbarkeit und Verständlichkeit. Ansonsten ist es einfach nur eine unnötige Vergleichsoperation.

if ("true" == true) ergibt false, denn Number("true") ergibt NaN, Number(true) ergibt 0, und NaN == 0 ergibt false.

Knapp daneben - true wird zu 1 evaluiert, nicht zu 0. Das ändert hier aber am Ergebnis nichts.

Ciao,
 Martin

--
"So schnell waren wir noch nie am Unfallort", sagte der Polizist zu seinem Kollegen, als er einen Laternenmast gerammt hatte.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(