O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

JavaScript für Enterprise-Entwickler

Book Description

Klassische JavaScript-Bücher wenden sich an Webentwickler; dieses Buch dagegen ist für erfahrene Anwendungsentwickler ... und von denen interessieren sich immer mehr für JavaScript!+ Ausführliches Kapitel über node.js

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Hingabe
  5. Vorwort
    1. An wen richtet sich dieses Buch?
    2. Wie ist das Buch aufgebaut?
    3. Wie liest man dieses Buch?
    4. Kapitel 1 – Die Geschichte von JavaScript
    5. Kapitel 2 – JavaScript-Laufzeitumgebungen
    6. Kapitel 3 – Core-JavaScript
    7. Kapitel 4 – JavaScript als funktionale Programmiersprache
    8. Kapitel 5 – JavaScript als prototypische Programmiersprache
    9. Kapitel 6 – JavaScript als objektorientierte Programmiersprache
    10. Kapitel 7 – Eingebaute Objekte
    11. Kapitel 8 – Entwurfsmuster
    12. Kapitel 9 – JavaScript im Webbrowser – Teil 1
    13. Kapitel 10 – JavaScript auf dem Server mit Node
    14. Kapitel 11 – JavaScript im Webbrowser – Teil 2
    15. Kapitel 12 – Build-Automatisierung
    16. Kapitel 13 – Testen
    17. Referenz, Nachwort, Literaturliste und Index
    18. Danksagung
  6. Inhaltsverzeichnis
  7. 1 Die Geschichte von JavaScript
    1. 1.1 JavaScript – die Lingua franca des WWW
    2. 1.2 Netscape und JavaScript
    3. 1.3 Das Vorbild Self
    4. 1.4 Das Vorbild Scheme
    5. 1.5 JavaScript und ECMAScript
    6. 1.6 ECMAScript 5th Edition
    7. 1.7 Harmony
    8. 1.8 JavaScript und HTML5
    9. 1.9 New Wave JavaScript
    10. 1.10 Die JavaScript-Revolution
    11. 1.11 Zusammenfassung
  8. 2 JavaScript-Laufzeitumgebungen
    1. 2.1 JavaScript-Interpreter
    2. 2.2 Read-Eval-Print-Loop
    3. 2.3 Der Browser
    4. 2.4 Headless JavaScript
    5. 2.5 Rhino
    6. 2.6 SpiderMonkey, TraceMonkey und JägerMonkey
    7. 2.7 Google V8
    8. 2.8 SquirrelFish und Nitro, Microsoft und Opera
    9. 2.9 Welche Umgebung für welchen Zweck?
    10. 2.10 Entwicklungsumgebungen
    11. 2.11 Zusammenfassung
  9. 3 Core JavaScript
    1. 3.1 Skriptsprachen
    2. 3.2 Typen und Werte
      1. 3.2.1 Schwache Typisierung
      2. 3.2.2 Literale
      3. 3.2.3 Typeof-Operator
      4. 3.2.4 Typenlose Verwendung
    3. 3.3 Imperative Programmierung
      1. 3.3.1 Ausdrücke und Operatoren
      2. 3.3.2 Vergleiche
      3. 3.3.3 Variablen
      4. 3.3.4 Blöcke und Gültigkeit von Variablen
      5. 3.3.5 Zahlen
      6. 3.3.6 Zeichenketten
      7. 3.3.7 Boolesche Werte
      8. 3.3.8 Arrays
      9. 3.3.9 Reguläre Ausdrücke
      10. 3.3.10 Kommentare
      11. 3.3.11 Tokens und Whitespaces
      12. 3.3.12 Kontrollstrukturen
      13. 3.3.13 Schleifen
      14. 3.3.14 Ausnahmebehandlung
    4. 3.4 Objektliteral
    5. 3.5 Zusammenfassung
  10. 4 JavaScript als funktionale Programmiersprache
    1. 4.1 Funktionsliteral
    2. 4.2 Funktionsnamen
    3. 4.3 Parameter und Parametervalidierung
    4. 4.4 Konfigurationsobjekt als lesbarer Parameter
    5. 4.5 Anonyme Funktionen
    6. 4.6 Geltungsbereiche (Scopes)
    7. 4.7 this
    8. 4.8 Geschachtelte Scopes und der globale Namensraum
    9. 4.9 Closures und Module
    10. 4.10 Funktionale Vererbung
    11. 4.11 Callbacks
    12. 4.12 Kaskaden
    13. 4.13 Rekursion
    14. 4.14 Funktions-Caching
    15. 4.15 Currying
    16. 4.16 Zusammenfassung
  11. 5 JavaScript als prototypische Programmiersprache
    1. 5.1 Definition und Verwendung
    2. 5.2 Duck-Typing
    3. 5.3 Prototypen
    4. 5.4 Konstruktoren
      1. 5.4.1 Kontruktoren und die new-Anweisung
      2. 5.4.2 Entwurfsmuster für die new-Anweisung
      3. 5.4.3 Konstruktor- und Prototypreferenz
    5. 5.5 this
      1. 5.5.1 Globales Objekt
      2. 5.5.2 Funktion
      3. 5.5.3 Methode
      4. 5.5.4 Konstruktor
      5. 5.5.5 that
    6. 5.6 Reflexion
    7. 5.7 Löschen von Eigenschaften
    8. 5.8 Zusammenfassung
  12. 6 JavaScript als objektorientierte Programmiersprache
    1. 6.1 Objekterzeugungsmuster
      1. 6.1.1 Rent-a-Constructor
      2. 6.1.2 Konstruktoren überladen
      3. 6.1.3 Rent-a-Constructor-and-a-Prototype
      4. 6.1.4 Referenz auf die Superklasse halten
    2. 6.2 Existierende Bibliotheken
      1. 6.2.1 Klassenbasierte Vererbung in Prototype
      2. 6.2.2 Douglas Crockfords Classical Inheritance in JavaScript
      3. 6.2.3 John Resigs Simple JavaScript Inheritance
    3. 6.3 Prototypische Vererbung
    4. 6.4 Vererbung durch Kopieren
    5. 6.5 Mixins
    6. 6.6 Einzelne Methoden wiederverwenden
    7. 6.7 Objekte in ES5
      1. 6.7.1 Object.preventExtensions
      2. 6.7.2 Object.isExtensible
      3. 6.7.3 Object.seal
      4. 6.7.4 Object.isSealed
      5. 6.7.5 Object.freeze
      6. 6.7.6 Object.isFrozen
    8. 6.8 Objekteigenschaften in ES5
      1. 6.8.1 Accessor-Properties
      2. 6.8.2 Property-Descriptor
        1. writable
        2. configurable
        3. enumerable
        4. Descriptor
      3. 6.8.3 Object.defineProperty
      4. 6.8.4 Object.defineProperties
      5. 6.8.5 Object.getOwnPropertyDescriptor
      6. 6.8.6 Object.keys
      7. 6.8.7 Object.getOwnPropertyNames
      8. 6.8.8 Enumeration
    9. 6.9 Objekterzeugung in ES5
    10. 6.10 Bind in ES5
    11. 6.11 Zusammenfassung
  13. 7 Eingebaute Objekte
    1. 7.1 Boolean
    2. 7.2 Number
    3. 7.3 String
    4. 7.4 Array
      1. 7.4.1 Array-ähnliche Objekte
      2. 7.4.2 Arrays und reguläre Ausdrücke
      3. 7.4.3 Arrays und ECMAScript 5th Edition
    5. 7.5 Date
    6. 7.6 Math
    7. 7.7 RegExp
    8. 7.8 Zusammenfassung
  14. 8 Entwurfsmuster
    1. 8.1 Singleton
    2. 8.2 Iterator
    3. 8.3 Factory
    4. 8.4 Strategy
    5. 8.5 Decorator
    6. 8.6 Bridge
    7. 8.7 Facade
    8. 8.8 Adapter
    9. 8.9 Proxy
    10. 8.10 Mediator
    11. 8.11 Observer
    12. 8.12 Template-Method
    13. 8.13 Command
    14. 8.14 Spooling
    15. 8.15 Futures und Promises
    16. 8.16 Fear of Code
    17. 8.17 Zusammenfassung
  15. 9 JavaScript im Webbrowser – Teil 1
    1. 9.1 Sandboxing
    2. 9.2 Einbettung und Referenzierung
    3. 9.3 Das Laden der Seite
    4. 9.4 Das Window-Objekt
    5. 9.5 Das Document-Objekt
    6. 9.6 DOM-API
    7. 9.7 Timer
    8. 9.8 Events
    9. 9.9 Zusammenfassung
  16. 10 JavaScript auf dem Server mit Node
    1. 10.1 Node-Grundlagen
      1. 10.1.1 Netzwerkapplikationen
      2. 10.1.2 Non-Blocking I/O
      3. 10.1.3 Event-Loop
      4. 10.1.4 Anwendungsfälle für Node
    2. 10.2 Node installieren
    3. 10.3 Hello World in Node
    4. 10.4 Events
    5. 10.5 Buffer
    6. 10.6 Streams
      1. 10.6.1 Readable Streams
      2. 10.6.2 Writable Streams
    7. 10.7 Weitere APIs
    8. 10.8 Module
    9. 10.9 Package-Management
    10. 10.10 Debugging
    11. 10.11 Beispielapplikation mit dem Express-Framework
    12. 10.12 Zusammenfassung
  17. 11 JavaScript im Webbrowser – Teil 2
    1. 11.1 Formulare
    2. 11.2 Ajax
    3. 11.3 Eine Einführung in jQuery
    4. 11.4 Einführung in jQuery-UI
      1. 11.4.1 Widgets
      2. 11.4.2 Interaction-Helpers und Effekte
      3. 11.4.3 Themeroller
    5. 11.5 Zusammenfassung
  18. 12 Build-Automatisierung
    1. 12.1 Kompilieren
    2. 12.2 Packaging
      1. 12.2.1 Assemblierung
      2. 12.2.2 Minifizierung
      3. 12.2.3 CommonJS-Module und Pakete
    3. 12.3 Testing
    4. 12.4 Linting
    5. 12.5 Deployment
    6. 12.6 Dokumentation
    7. 12.7 Maven
      1. 12.7.1 wro4j
      2. 12.7.2 Jasmine-Maven-Plug-in
      3. 12.7.3 JsDoc-Toolkit-Maven-Plug-in
    8. 12.8 Weitere Build-Systeme
    9. 12.9 Require.js
    10. 12.10 Zusammenfassung
  19. 13 Testen
    1. 13.1 Klassisches Testen
    2. 13.2 User-Interface-Tests
    3. 13.3 Testgetriebene Entwicklung
    4. 13.4 Unit Tests
    5. 13.5 Modultests im Browser
    6. 13.6 Stand-alone-Unit-Tests mit Jasmine
    7. 13.7 Verteiltes Testen mit JsTestDriver
    8. 13.8 Zusammenfassung
  20. 14 Nachwort
  21. Anhang
    1. A Referenz Core JavaScript
      1. A.1 Anweisungen
        1. A.1.1 Leere Anweisung
        2. A.1.2 Var-Anweisung
        3. A.1.3 Let-Anweisung
        4. A.1.4 Const-Anweisung
        5. A.1.5 Block-Anweisung
        6. A.1.6 Try-Catch-Finally-Block
        7. A.1.7 Throw-Anweisung
        8. A.1.8 Debugger-Anweisung
        9. A.1.9 Return-Anweisung
      2. A.2 Ausdrücke und Operatoren
        1. A.2.1 Ausdrücke
        2. A.2.2 Operatoren
          1. 1.2.2.1 Unäre Operatoren
          2. 1.2.2.2 Void-Operator
          3. 1.2.2.3 Multiplikation, Division, Modulo
          4. 1.2.2.4 Addition, Subtraktion und Verkettung
          5. 1.2.2.5 Vergleichsoperatoren
          6. 1.2.2.6 Logische Operatoren
          7. 1.2.2.7 Bit-Operator
          8. 1.2.2.8 Ternärer Operator
      3. A.3 Kontrollstrukturen
        1. A.3.1 If-Else-Anweisung
        2. A.3.2 Switch-Case-Anweisung
        3. A.3.3 While-Anweisung
        4. A.3.4 Repeat-Until-Anweisung
        5. A.3.5 Do-While-Anweisung
        6. A.3.6 For-Anweisung
        7. A.3.7 Label-Anweisung
        8. A.3.8 Break-Anweisung
        9. A.3.9 Continue-Anweisung
      4. A.4 Whitespaces
      5. A.5 Kommentare
      6. A.6 Werte
      7. A.7 Literale
        1. A.7.1 Number
        2. A.7.2 NaN
        3. A.7.3 Infinity
        4. A.7.4 Formatierung
        5. A.7.5 number.toFixed
        6. A.7.6 number.toPrecision
        7. A.7.7 number.toString
        8. A.7.8 number.toExponential
        9. A.7.9 parseInt
        10. A.7.10 parseFloat
      8. A.8 Strings
      9. A.9 Boolean
      10. A.10 Reguläre Ausdrücke
      11. A.11 Array
      12. A.12 Objektliterale
    2. B Objektreferenz
      1. B.1 Boolean
        1. B.1.1 Konstruktor
        2. B.1.2 Eigenschaften
        3. B.1.3 Methoden
      2. B.2 Number
        1. B.2.1 Konstruktor
        2. B.2.2 Eigenschaften
        3. B.2.3 Methoden
      3. B.3 String
        1. B.3.1 Konstruktor
        2. B.3.2 Eigenschaften
        3. B.3.3 Methoden
      4. B.4 Array
        1. B.4.1 Konstruktor
        2. B.4.2 Eigenschaften
        3. B.4.3 Methoden
      5. B.5 Date
        1. B.5.1 Konstruktor
        2. B.5.2 Methoden
      6. B.6 Math
        1. B.6.1 Konstruktor
        2. B.6.2 Konstanten
        3. B.6.3 Rundungsfunktionen
        4. B.6.4 Filterfunktionen
        5. B.6.5 Trigonometrische Funktionen
        6. B.6.6 Logarithmische Funktionen
        7. B.6.7 Sonstige Funktionen
      7. B.7 RegExp
        1. B.7.1 Konstruktor
        2. B.7.2 Zeichen
        3. B.7.3 Eigenschaften
        4. B.7.4 Methoden
    3. C Namen und Namenskonventionen
    4. D JavaScript-Laufzeitumgebungen installieren
      1. D.1 Rhino
      2. D.2 TraceMonkey
      3. D.3 Google V8
    5. E Literatur
    6. Index
  22. Fußnoten
    1. Vorwort
    2. Kapitel 1
    3. Kapitel 2
    4. Kapitel 3
    5. Kapitel 4
    6. Kapitel 5
    7. Kapitel 6
    8. Kapitel 7
    9. Kapitel 8
    10. Kapitel 9
    11. Kapitel 10
    12. Kapitel 11
    13. Kapitel 12
    14. Kapitel 13
    15. Kapitel 14
    16. Anhang A
    17. Anhang B
    18. Anhang D
    19. Anhang E