Kai345: /MENSCHELEI JS-Fallstricke

[latex]Mae  govannen![/latex]

Kleines *g*: Manchmal macht die Sprache nicht das, was der Programmierer erwartet…
http://wtfjs.com/ (via)

Cü,

Kai

--
Even if you are a master of jQuery, you can only create mediocre (at best)
scripts. The problem is that the authors you rely on have not mastered the
DOM themselves. It's like one blind guy leading another off a cliff (D.Mark/clj)
Foren-Stylesheet Site Selfzeug JS-Lookup
SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
  1. Grüße,

    Kleines *g*: Manchmal macht die Sprache nicht das, was der Programmierer erwartet…
    http://wtfjs.com/ (via)

    ist wohl für alle Anfänger wie mich empfehlenswert, falls die Hornhaut auf dem "indiekaketretfuß" noch nicht dick genug ist :)
    MFG
    bleicher

    --
    __________________________-

    FirefoxMyth
  2. Lieber Kai345,

    http://wtfjs.com/ (via)

    einige wissen nicht, dass eine Anweisung in JS nicht zwingend mit einem Semikolon enden muss, sondern dass ein Zeilenende auch genügt. Daher ist gerade bei der ersten dort aufgezeigten Problematik das return mit seinem Zeilenende das, was ausgeführt wird: return (undefined) - und das anschließend notierte Objekt wird völlig vom Parser ignoriert. Daher müssen die geschwungenen Klammern zumindest in derselben Zeile wie das Return-Statement beginnen, damit das Objekt zurückgegeben wird.

    Die Rechenungenauigkeiten in JS sind ja längst bekannt...

    Und was die interne Typumwandlung angeht, so sind die Beispiele mit true und den Ganzzahlwerten einfach ebenso ein Missverständnis der Sprache (der Autor hat die Wirkung der Klammern nicht bedacht).

    Einige dieser WTF-Beispiele basieren nun einfach auf Missverständnissen. Ist das wirklich lustig?

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hi, Felix!

      Ich konnte auch nicht darüber lachen. Wenn die gezeigten Beispiele wenigstens durchweg vernünftige Anwendungsmöglichkeiten hätten...

      Gruß, LX

      --
      RFC 1925, Satz 6a: Es ist immer möglich, einen weiteren Umweg einzufügen.
      RFC 1925, Satz 11a: Siehe Regel 6a
    2. [latex]Mae  govannen![/latex]

      Daher müssen die geschwungenen Klammern zumindest in derselben Zeile wie das Return-Statement beginnen, damit das Objekt zurückgegeben wird.

      Damit ist JS ein Fallstrick für alle, die von anderen, C-Syntax-ähnlichen Sprachen kommen und/oder es gewohnt sind, einen bestimmten Coding-Style anzuwenden, ja.

      Aber es geht auf der Seite doch gar nicht darum, zu erklären, _weshalb_ die jeweiligen Fehler zustandekommen, sondern es ist eine Sammlung von Code, welcher zum Teil durchaus wahrscheinlich so oder ähnlich geschrieben werden wird und die intuitive Erwartungshaltung, die ein unbedarfter Programmierer hat, wie etwas funktionieren sollte, wenn man einen bestimmten Code liest/schreibt, es aber durch diverse historische Fehlkonzepte und unerwartete Typumwandlung eben von JS nicht tut.

      Einige dieser WTF-Beispiele basieren nun einfach auf Missverständnissen. Ist das wirklich lustig?

      Mein spezieller Humor ist nicht jedem gegeben :) Dinge wie typeof NaN // number, of course. oder [] == ![] // true lassen mich durchaus ziemlich grinsen. (noch verstärkt durch das trockene „of course“)

      Cü,

      Kai

      --
      Deutsches Liedgut international:
      In early rope to mountain we pull
      Foren-Stylesheet Site Selfzeug JS-Lookup
      SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?