jobo: 10 Fehler in Javascript, man nicht machen sollte ...

  1. Hi there,

    Hallo,

    http://net.tutsplus.com/tutorials/javascript-ajax/the-10-javascript-mistakes-youre-making/

    Naja, manche Sachen sind schon an den Haaren herbeigezogen, vor allem:

    "Mistake 7 - You’re Not Using a Radix When Using parseInt"

    • da hab ich das Wort Klippenschliefer in meinem Leben öfter geschrieben als parseInt verwendet...
    1. Hallo,

      http://net.tutsplus.com/tutorials/javascript-ajax/the-10-javascript-mistakes-youre-making/

      Naja, manche Sachen sind schon an den Haaren herbeigezogen, vor allem:

      "Mistake 7 - You’re Not Using a Radix When Using parseInt"

      • da hab ich das Wort Klippenschliefer in meinem Leben öfter geschrieben als parseInt verwendet...

      Jaja, der Klippdachs. Den kannte ich vorher noch garnicht (;-).

      Gruß

      jobo

      1. Hi there,

        Jaja, der Klippdachs. Den kannte ich vorher noch garnicht (;-).

        Dann hast Du das Wort noch seltener geschrieben als ich (wobei ich jetzt, selbst neugierig geworden, feststellen musste, daß das Ding Klippschliefer und nicht Klippenschliefer heisst...;)

        1. (wobei ich jetzt, selbst neugierig geworden, feststellen musste, daß das Ding Klippschliefer und nicht Klippenschliefer heisst...;)

          Domestiziert und große, oft schwarze, Musikinstrumente bewohnend heißt er Klawischliefer. Das "ier" wurde nur nicht weggelassen sondern mit dem "v" zu einem "w". ;-)

  2. Hi,

    was die tücken von Javascript angeht fand ich diese Seite sehr gut.

    ~dave

    1. Hallo,

      was die tücken von Javascript angeht fand ich diese Seite sehr gut.

      schaut gut aus ...;

      Gruß

      jobo

  3. http://net.tutsplus.com/tutorials/javascript-ajax/the-10-javascript-mistakes-youre-making/

    Der Artikel vermischt gute (altbekannte) Faustregeln mit Stilfragen und hat zudem einige Fehler. Vieles wird als »Mistake« bezeichnet, was man beherrschen anstatt vermeiden sollte. Etwa ==. Type Coercion ist ein nützliches Feature von schwach typisierten Sprachen, das einem vieles vereinfacht und nur weniges erschwert.

    Ein schwerwiegender Fehler ist beispielsweise, new Array/Object mit new Boolean/Number/String gleichzusetzen und als »Type Wrapper Objects« zu bezeichnen. Korrekt wäre Boxed Primitives für new Boolean/Number/String. new Object/Array hingegen sind nur Langschreibweisen der entsprechenden Literale. Funktional sind beide Schreibweisen identisch. Das ist bei Boxed Primitives ganz anders. Im Übrigen kann man selbst Objekte erzeugen, die Primitives verpacken, indem man Methoden wie valueOf und toString implementiert.

    Mathias

    1. Hallo,

      http://net.tutsplus.com/tutorials/javascript-ajax/the-10-javascript-mistakes-youre-making/

      Der Artikel vermischt gute (altbekannte) Faustregeln mit Stilfragen und hat zudem einige Fehler. Vieles wird als »Mistake« bezeichnet, was man beherrschen anstatt vermeiden sollte. Etwa ==. Type Coercion ist ein nützliches Feature von schwach typisierten Sprachen, das einem vieles vereinfacht und nur weniges erschwert.

      Naja, Crockford zum Beispiel sieht das ja anders. Er meint, wenn ich es kapiere, dass der mutaßliche Grad der Erschwernis mehr wiegt. Insofern würde ich das nicht als einen Fehler sondern eine Ansichtssache bezeichnen.

      Ein schwerwiegender Fehler ist beispielsweise, new Array/Object mit new Boolean/Number/String gleichzusetzen und als »Type Wrapper Objects« zu bezeichnen. Korrekt wäre Boxed Primitives für new Boolean/Number/String. new Object/Array hingegen sind nur Langschreibweisen der entsprechenden Literale. Funktional sind beide Schreibweisen identisch. Das ist bei Boxed Primitives ganz anders. Im Übrigen kann man selbst Objekte erzeugen, die Primitives verpacken, indem man Methoden wie valueOf und toString implementiert.

      Deckt sich das mit der Aussage dieses Ausschnittes http://docstore.mik.ua/orelly/webprog/jscript/ch03_12.htm? Ich kapiere es noch nicht so ganz.

      Gruß

      jobo

      1. Hallo,

        Ein schwerwiegender Fehler ist beispielsweise, new Array/Object mit new Boolean/Number/String gleichzusetzen und als »Type Wrapper Objects« zu bezeichnen. Korrekt wäre Boxed Primitives für new Boolean/Number/String. new Object/Array hingegen sind nur Langschreibweisen der entsprechenden Literale. Funktional sind beide Schreibweisen identisch. Das ist bei Boxed Primitives ganz anders. Im Übrigen kann man selbst Objekte erzeugen, die Primitives verpacken, indem man Methoden wie valueOf und toString implementiert.

        Deckt sich das mit der Aussage dieses Ausschnittes http://docstore.mik.ua/orelly/webprog/jscript/ch03_12.htm? Ich kapiere es noch nicht so ganz.

        Mit den Begrifflichkeiten zu googlen bringt dann Treffer in Java zuerst. Aber das hier trifft es wohl:

          
          
        String.prototype.returnMe= function() {  
            return this;  
        }  
          
        var a = "abc";  
        var b = a.returnMe();  
        	  
        a; //"abc"  
        typeof a; //"string" (still a primitive)  
        b; //"abc"  
        typeof b; //"object"  
          
        
        

        aus: http://javascriptweblog.wordpress.com/2010/09/27/the-secret-life-of-javascript-primitives/

        Gruß

        jobo

      2. Deckt sich das mit der Aussage dieses Ausschnittes http://docstore.mik.ua/orelly/webprog/jscript/ch03_12.htm?

        Ja. Diese Beschreibung ist sehr gut.

        Mathias

    2. Hallo,

      Ein schwerwiegender Fehler ist beispielsweise, new Array/Object mit new Boolean/Number/String gleichzusetzen und als »Type Wrapper Objects« zu bezeichnen. Korrekt wäre Boxed Primitives für new Boolean/Number/String. new Object/Array hingegen sind nur Langschreibweisen der entsprechenden Literale. Funktional sind beide Schreibweisen identisch. Das ist bei Boxed Primitives ganz anders. Im Übrigen kann man selbst Objekte erzeugen, die Primitives verpacken, indem man Methoden wie valueOf und toString implementiert.

      "i) Typed Wrappers
      JavaScript has a set of typed wrappers. For example:

      new Boolean(false)

      produces an object that has a valueOf method that returns the wrapped value. This turns out to be completely unnecessary and occasionally confusing. Don't use new Boolean or new Number or new String.

      Also avoid new Object and new Array. Use {} and [] instead
      "

      http://prasanthaboutjava.blogspot.com/2008/08/javascriptthe-good-parts-by-douglas.html

      Gruß

      jobo

      1. "i) Typed Wrappers
        JavaScript has a set of typed wrappers. For example:

        new Boolean(false)

        produces an object that has a valueOf method that returns the wrapped value. This turns out to be completely unnecessary and occasionally confusing. Don't use new Boolean or new Number or new String.

        Also avoid new Object and new Array. Use {} and [] instead
        "

        http://prasanthaboutjava.blogspot.com/2008/08/javascriptthe-good-parts-by-douglas.html

        Was willst du mir damit sagen?

        Array und Object sind keine »Typed Wrappers«. Sie wrappen nichts. Sie erzeugen einach Objects. new Boolean/Number/String hingegen wrappen Primitives. Technisch und praktisch gesehen ist das etwas ganz anderes.

        Mathias