"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.

6 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.

Schreibe einen Kommentar

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