JSTF-Workshop Teil 1

548 Aufrufe

Veröffentlicht am

Der erste Workshop-Teil unserer JavaScript Task Force bei mindmatters in Hamburg.

Es wird zunächst ein etwas weiter gefasster Ausblick geworfen auf die aktuelle Bedeutung von JavaScript in der Webentwicklung.

Die zweite Hälfte der Präsentation steigt in den technischen Aspekt des Workshops ein, indem sie typische Stolpersteine in JavaScript sowie das Code-Quality-Tool JSLint vorstellt.

Veröffentlicht in: Technologie
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
548
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
41
Aktionen
Geteilt
0
Downloads
2
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • -functions are first class objects:
    --> JavaScript hat mehr Ähnlichkeit zu Lisp oder Scheme als zu Java
    --> Stichwort Closures (Closures konservieren ihren Kontext)
    --> macht JavaScript zu einer sehr mächtigen Programmiersprache

    -dynamisch typisierte Sprache:
    -->kein Compiler
    --> erst zur Laufzeit werden Typ-Fehler sichtbar

    -mächtige Objekt-Literal-Syntax
    -->können einfach durch Auflistung ihrer Komponenten erstellt werden, d.h. keine Definition von Klassen und Konstruktoren notwendig
    -->Syntax war Inspiration für JSON-Format

    -protoytp-basierte Vererbung:
    --> JS ist ein klassenloses System
    --> mächtig, aber ungewohnt für klassische OOler (wie Ruby oder Java)
  • -Viele der vorgestellten Beispiele werden aus Unwissenheit oder aus intuitiv gemacht, weil man es aus
    anderen Programmiersprachen kennt bzw. so erwartet
  • - == versucht die Operanden automatisch zu konvertieren, wenn sie unterschiedliche Typen haben
  • -es wird „undefined“ statt ein Objekt mit der Property Status zurückgegeben
    -undefined ist nicht null
  • -JavaScript versucht fehlerhafte Programme automatisch zu fixen
  • parseInt konvertiert einen String in einen Integer
  • -Sobald parseInt auf ein Nicht-Zahl Zeichen trifft hört es auf zu parsen
    -Leider gibt es keine Möglichkeit auf den nicht geparsten Teil zuzugreifen (z.B. tons)
    -Ja das letzt ist 0. So einfach können Datums- oder Zeit-Angaben also nicht geparsed werden
  • -Der 2. Parameter gibt die Basis an
    -Bei „08“ ohne Radix-Parameter wird als Zahlenbasis 8 verwendet
  • Folge der Kompatibilität zum IEEE Standard for Binary Floating Point Arithmetic
  • -ja richtig, 3
    -Hab beide Varianten selbst im FF-Browser ausprobiert.
  • + ,0‘ wird autokonvertiert
    ,+‘ ist hier der Vorzeichenoperator
    + ,oops‘ kann nicht autokonvertiert werden
  • isFinite noch besser zum Testen ob etwas eine Zahl ist, da zusätzlich auf Infinity geprüft wird
  • -Ruby hat wie JavaScript keinen Compiler.
    -Trotzdem treten in unseren Ruby-Programmen eigentlich solche Fehler wie ein Semikolon (bei uns ein END) zu vergessen nie auf.
    -Dies ist der hohen Test-Abdeckung von unserem Ruby-Code zu verdanken.
  • JSTF-Workshop Teil 1

    1. 1. JSTF-Workshop Teil 1
    2. 2. Heute
    3. 3. Web2.0
    4. 4. Browser-Abstraktion
    5. 5. JavaScript wird cool
    6. 6. “World‘s most popular Programming Language” Douglas Crockford
    7. 7. Eigentlich alles feini-fein…
    8. 8. “World‘s most misunderstood Programming Language” Douglas Crockford
    9. 9. “Lisp in C‘s clothing” Douglas Crockford
    10. 10. Schlechte Vergangenheit
    11. 11. Gestern
    12. 12. JS ist gefährlich!
    13. 13. DHTML
    14. 14. XMLHttpRequest
    15. 15. Alert Debugging
    16. 16. Dilettantentum
    17. 17. Fehlende Literatur
    18. 18. Geheimwissen
    19. 19. Eigentlich Geschichte…
    20. 20. Professionalität
    21. 21. Fachliteratur
    22. 22. Wissensaustausch
    23. 23. Kryptographie
    24. 24. Weg von der Bastellösung
    25. 25. Bausatz für Zeitmaschine?
    26. 26. Zukunft
    27. 27. Google Wave
    28. 28. Editor für die Cloud
    29. 29. JSTF Good Parts / Professional Grade JS Werkzeuge Strategien Blick für's Ganze Flexiblere Teams
    30. 30. Workshop Beispiele aus dem Programmieralltag Diskussion Refactoring
    31. 31. JavaScript ‣ functions are first class objects ‣ dynamisch typisierte Sprache ‣ mächtige Objekt-Literal-Syntax ‣ Prototyp-basierte Vererbung
    32. 32. Mini-Javascript- ‣ in vielen Anwendungen zu sehen ‣ JavaScript erlaubt vieles, verzeiht wenig
    33. 33. Was passiert hier? 0 == '0' => ? '' == '0' => ? 0 == '' => ?
    34. 34. Das hier 0 == '0' => true '' == '0' => false 0 == '' => true
    35. 35. So geht‘s richtig 0 === '0' => false '' === '0' => false 0 === '' => false
    36. 36. Best practice für Vergleich Verwende standardmäßig immer === statt == bzw. !== statt !=
    37. 37. Was passiert hier? return { status: true };
    38. 38. Das Semikolon ;-) ‣ Automatisches Einfügen ‣ Keine Warnung ‣ Also immer dran denken ein ;-) einzufügen
    39. 39. Was passiert hier? parseInt("16"); parseInt("16 tons"); parseInt("08");
    40. 40. Na wusstet ihr das? parseInt("16"); => 16 parseInt("16 tons"); => 16 parseInt("08"); => 0 Hääääääh?!
    41. 41. parseInt und der parseInt("08") => parseInt("08", 10)
    42. 42. Na, brauchst du einen Taschenrechner? 0.1 + 0.2 === ?
    43. 43. Bei Geld ist nicht zu spaßen 0.1 + 0.2 === 0.30000000000000004
    44. 44. So ist richtig ((0.1 * 10) + (0.2 * 10)) / 10 = 0.3
    45. 45. Zahlen für Fortgeschrittene: NaN ‣ Not a Number ‣ +'0' ist eine Zahl ‣ +'oops' ist NaN
    46. 46. Test auf NaN typeof NaN === 'number' => ? NaN === NaN => ? NaN !== NaN => ?
    47. 47. Test auf NaN typeof NaN === 'number' => true NaN === NaN => false NaN !== NaN => true
    48. 48. Test auf NaN richtig isNaN(NaN) => true isNaN(0) => false isNaN('oops') => true isNaN('0') => false isFinite() noch besser
    49. 49. Menschen machen ‣ Jeder kann mal ein Semikolon vergessen ‣ Keine JavaScript-Tests (zumindest in unseren Projekten) ‣ JSLint for the rescue

    ×