Your SlideShare is downloading. ×
JSTF-Workshop Teil 1
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

JSTF-Workshop Teil 1

374
views

Published on

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

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.

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
374
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • -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.
  • Transcript

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