"2" + "2" – "2" ist 20

<!DOCTYPE html>
<html lang="de-DE">
<head>
<meta charset="UTF-8" />
<title>Ist Javascript krank?</title>
</head>
<body>
<h1>Bullshit-Vergleich</h1>
<pre>
if (&quot;2&quot; + &quot;2&quot; - &quot;2&quot; == 20) alert (&quot;Javascript ist krank&quot;);
</pre>
<script type="text/javascript">
if ("2" + "2" - "2" == 20) alert ("Javascript ist krank");
</script>
</body>
</html>

Screenshot, wie es aussieht, wenn man diese Datei im Webbrowser ├Âffnet -- mit Messagebox ┬╗Javascript ist krank┬ź, weil der Operator + als Stringverkettung benutzt, der Operator - aber zu einer Umwandlung des Strings in die Zahl 22 f├╝hrt, so dass das Ergebnis 20 herauskommt. ├ťber den Operator == will ich mich gar nicht weiter auslassen.

Selbst ausprobieren? ­čśë

Dieser Beitrag wurde unter Technisches abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

8 Antworten zu "2" + "2" – "2" ist 20

  1. rolak Ú║╗ sagt:

    Wenn ich es recht sehe, liegt der Fehler im Argument von alert() – w├Ąre dies codesnippet von mir, m├╝├čte dort ein »ua deswegen finde ich es so ungemein gr├Ą├člich, in JS zu programmieren oder gar zu debuggen« reingezw├Ąngt werden.
    Denn gem├Ą├č seines eigenen, zugegebenerma├čen recht kranken Regulariums l├Ąuft JS hier pumperlgsund durch die Gegend: »+« concateniert stringOperanden, »-« wandelt vor dem Aktivwerden stringOperanden in Zahlen, links nach rechts unter GleichPriorisiertem ist Standard, also
      «2″ + »2″ → »22″
      «22″ – »2″ ⇒ 22 – 2 → 20
      20 == 20 → TRUE
    Siehe auch dieser Frage.

  2. rolak Ú║╗ sagt:

    Wo zum Henker ist denn in der Mitte der letzten Zeile das
      «jene Antwort zu«
    geblieben und warum ist die AntwortURL in den FragenLink gerutscht?
    (die ScienceBlogs()-Vorschau zeigte beim Test das, was mir vorschwebte)

    • Ooops, das war mit hoher Wahrscheinlichkeit ein Bug in WordPress. ­čśë

      In der Datenbank steht der Kommentar jedenfalls vollst├Ąndig. Das Problem tritt erst auf, wenn der Kommentar hier dargestellt werden soll, dabei wird er verst├╝mmelt und die beiden Links werden ganz komisch zusammengefasst. Ich muss mal ein bisschen Ursachenforschung betreiben (und daf├╝r PHP lesen, was beinahe noch schlimmer als Javascript am Hirnchen nagt) und vermutlich einen Bug filen, wenn ich dazu komme. Vermutlich ist da ein kleiner Unfall mit einem Regex f├╝r die Filterung von HTML-Tags passiert.

      Mal schauen, wie viele WordPress-Versionen es braucht, bis dieser Fehler wieder drau├čen ist. Es gibt ja leider Wichtigeres f├╝r die Entwickler… ­čÖü

  3. rolak Ú║╗ sagt:

    wo geblieben?

    Grad eben auf dem KeramikThron erbl├╝hte eine Hypothese: bringen zuviele G├Ąnsef├╝├čchen den KommentarParser aus dem Takt? Sollte hierzublog jeder immer

    "G├Ąnsegefu├čtes nur &quot;-gerahmt eintippen?"

    • Ich habe gerade mal testweise das »G├Ąnsef├╝├čchen-Plugin« Intypo deaktiviert, und daran lag es nicht, obwohl das sehr wohl eine M├Âglichkeit war (das Plugin ist auch nicht gerade problemlos). Es ist vermutlich ein Bug im WordPress-Kern. Ich habe kein anderes Plugin mehr verbaut, das die Kommentare f├╝r die Ausgabe mitformatiert.

      Und ja, ich habe den Cache f├╝r meinen Test geleert. Diese Hand hatte ich schon einmal im Gesicht.

  4. rolak Ú║╗ sagt:

    beinahe noch schlimmer

    Wir scheinen ├Ąhnliche NichtVorlieben zu haben :•)

    Cache .. geleert

    Und ein ├Ąhnliches NichtDranDenkRisiko-Spektrum.

  5. rolak Ú║╗ sagt:

    Das Problem ist viel weiter verbreitet als gedacht: Heinrich Zankl: Irrwitziges aus der Wissenschaft. Hab heute morgen in der Pause fast den halben Kaffee verprustet…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht ver├Âffentlicht. Erforderliche Felder sind mit * markiert.