Your email was sent successfully. Check your inbox.

An error occurred while sending the email. Please try again.

Proceed reservation?

Export
  • 1
    Online Resource
    Online Resource
    Bonn : Rheinwerk Verlag
    UID:
    kobvindex_ERBEBC6382488
    Format: 1 online resource (651 pages)
    Edition: 2
    ISBN: 9783836256896
    Note: Intro -- Geleitwort -- Vorwort -- Materialien zum Buch -- 1 Einführung -- 1.1 Einleitung -- 1.2 Entstehung und Historie -- 1.3 Einsatzgebiete von JavaScript -- 1.3.1 Clientseitige JavaScript-Webanwendungen -- 1.3.2 Serverseitige JavaScript-Anwendungen -- 1.3.3 Desktop-JavaScript-Anwendungen -- 1.3.4 Mobile JavaScript-Anwendungen -- 1.3.5 Embedded-Anwendungen -- 1.3.6 Popularität von JavaScript -- 1.4 Laufzeitumgebungen -- 1.4.1 V8 -- 1.4.2 SpiderMonkey/TraceMonkey/JägerMonkey/OdinMonkey -- 1.4.3 JavaScriptCore -- 1.4.4 Chakra -- 1.4.5 Rhino -- 1.4.6 Nashorn -- 1.4.7 Dyn.js -- 1.4.8 Auswahl der richtigen Laufzeitumgebung -- 1.4.9 Interpreter und Just-in-time-Compiler -- 1.5 Entwicklungsumgebungen -- 1.5.1 IntelliJ WebStorm -- 1.5.2 Visual Studio Code -- 1.5.3 Aptana Studio 3 -- 1.5.4 Sublime Text 2 -- 1.5.5 NetBeans -- 1.5.6 JSFiddle, JSBin und Codepen -- 1.5.7 Fazit -- 1.6 Debugging-Tools -- 1.6.1 Das »console«-Objekt -- 1.6.2 Browser -- 1.6.3 Node.js Inspector -- 1.6.4 IDEs und Editoren -- 1.7 Einführung in die Sprache -- 1.7.1 Statische Typisierung vs. dynamische Typisierung -- 1.7.2 Datentypen und Werte -- 1.7.3 Variablen und Konstanten -- 1.7.4 Funktionen -- 1.7.5 Operatoren -- 1.7.6 Kontrollstrukturen und Schleifen -- 1.7.7 Fehlerbehandlung -- 1.7.8 Sonstiges Wissenswertes -- 1.8 Zusammenfassung und Ausblick -- 2 Funktionen und funktionale Aspekte -- 2.1 Die Besonderheiten von Funktionen in JavaScript -- 2.1.1 Funktionen als First-Class-Objekte -- 2.1.2 Funktionen haben einen Kontext -- 2.1.3 Funktionen definieren einen Sichtbarkeitsbereich -- 2.1.4 Alternativen zum Überladen von Methoden -- 2.1.5 Funktionen als Konstruktorfunktionen -- 2.2 Standardmethoden jeder Funktion -- 2.2.1 Objekte binden mit der Methode »bind()« -- 2.2.2 Funktionen aufrufen über die Methode »call()« -- 2.2.3 Funktionen aufrufen über die Methode »apply()« , 2.3 Einführung in die funktionale Programmierung -- 2.3.1 Eigenschaften funktionaler Programmierung -- 2.3.2 Unterschied zur objektorientierten Programmierung -- 2.3.3 Unterschied zur imperativen Programmierung -- 2.3.4 Funktionale Programmiersprachen und JavaScript -- 2.4 Von der imperativen Programmierung zur funktionalen Programmierung -- 2.4.1 Iterieren mit der Methode »forEach()« -- 2.4.2 Werte abbilden mit der Methode »map()« -- 2.4.3 Werte filtern mit der Methode »filter()« -- 2.4.4 Einen Ergebniswert ermitteln mit der Methode »reduce()« -- 2.4.5 Kombination der verschiedenen Methoden -- 2.5 Funktionale Techniken und Entwurfsmuster -- 2.5.1 Komposition -- 2.5.2 Rekursion -- 2.5.3 Closures -- 2.5.4 Partielle Auswertung -- 2.5.5 Currying -- 2.5.6 Das IIFE-Entwurfsmuster -- 2.5.7 Das Callback-Entwurfsmuster -- 2.5.8 Self-defining Functions -- 2.6 Funktionale reaktive Programmierung -- 2.6.1 Einführung -- 2.6.2 ReactiveX und RxJS -- 2.6.3 Praxisbeispiel: Drag & -- Drop -- 2.6.4 Praxisbeispiel: Echtzeitdaten über Web-Sockets -- 2.7 Zusammenfassung und Ausblick -- 3 Objektorientierte Programmierung mit JavaScript -- 3.1 Objekte -- 3.1.1 Arten von Objekten -- 3.1.2 Objekte erstellen -- 3.2 Prototypen -- 3.3 Vererbung -- 3.3.1 Prototypische Vererbung -- 3.3.2 Pseudoklassische Vererbung -- 3.3.3 Vererbung mit Klassensyntax -- 3.3.4 Kopierende Vererbung -- 3.3.5 Mehrfachvererbung mit Mixins -- 3.4 Datenkapselung -- 3.4.1 Öffentliche Eigenschaften -- 3.4.2 Private Eigenschaften -- 3.4.3 Privilegierte öffentliche Methoden -- 3.4.4 Nichtprivilegierte öffentliche Methoden -- 3.4.5 Private Methoden -- 3.5 Emulieren von statischen Eigenschaften und statischen Methoden -- 3.6 Emulieren von Interfaces -- 3.6.1 Interfaces emulieren mit Attribute Checking -- 3.6.2 Interfaces emulieren mit Duck-Typing -- 3.7 Emulieren von Namespaces -- 3.8 Emulieren von Modulen , 3.8.1 Das klassische Module-Entwurfsmuster -- 3.8.2 Das Revealing-Module-Entwurfsmuster -- 3.8.3 Importieren von Modulen -- 3.8.4 Module Augmentation -- 3.8.5 Asynchronous Module Definition (AMD) und CommonJS -- 3.8.6 Universal Module Definition (UMD) -- 3.9 Modulsyntax -- 3.9.1 Module exportieren -- 3.9.2 Module importieren -- 3.10 Zusammenfassung und Ausblick -- 4 ECMAScript 2015 und neuere Versionen -- 4.1 Einführung -- 4.2 Block-Scope und Konstanten -- 4.2.1 Block-Scope -- 4.2.2 Konstanten -- 4.3 Striktere Trennung zwischen Funktionen und Methoden -- 4.3.1 Arrow-Funktionen -- 4.3.2 Definition von Methoden -- 4.4 Flexiblerer Umgang mit Funktionsparametern -- 4.4.1 Beliebige Anzahl an Funktionsparametern -- 4.4.2 Abbilden von Arrays auf Funktionsparameter -- 4.4.3 Standardwerte für Funktionsparameter -- 4.4.4 Benannte Parameter -- 4.5 Mehrfachzuweisungen über Destructuring -- 4.5.1 Array-Destructuring -- 4.5.2 Objekt-Destructuring -- 4.6 Iteratoren und Generatoren -- 4.6.1 Iteratoren -- 4.6.2 Generatorfunktionen und Generatoren -- 4.7 Promises -- 4.8 Proxies -- 4.8.1 Proxies seit ES2015 -- 4.8.2 Emulieren von Proxies in ES5 -- 4.8.3 Anwendungsbeispiel: Proxy als Profiler -- 4.8.4 Anwendungsbeispiel: Proxy zur Validierung -- 4.9 Collections -- 4.9.1 Maps -- 4.9.2 Weak Maps -- 4.9.3 Sets -- 4.9.4 Weak Sets -- 4.10 Neue Methoden der Standardobjekte -- 4.10.1 Neue Methoden in »Object« -- 4.10.2 Neue Methoden in »String« -- 4.10.3 Neue Methoden in »Array« -- 4.10.4 Neue Methoden in »RegExp«, »Number« und »Math« -- 4.11 Sonstiges neue Features -- 4.11.1 Template-Strings -- 4.11.2 Symbole -- 4.11.3 »for-of«-Schleife -- 4.12 Zusammenfassung und Ausblick -- 5 Der Entwicklungsprozess -- 5.1 Einleitung -- 5.2 Node.js und NPM -- 5.2.1 NPM installieren -- 5.2.2 Node.js-Anwendungen installieren -- 5.3 Styleguides und Code Conventions -- 5.3.1 Einrückungen , 5.3.2 Semikolons -- 5.3.3 Anführungszeichen bei Strings -- 5.3.4 Variablendeklaration -- 5.3.5 Namenskonventionen -- 5.3.6 Klammern -- 5.4 Codequalität -- 5.4.1 JSLint -- 5.4.2 JSHint -- 5.4.3 ESLint -- 5.4.4 JSBeautifier -- 5.4.5 Google Closure Linter -- 5.4.6 Fazit -- 5.5 Dokumentation -- 5.5.1 JSDoc 3 -- 5.5.2 YUIDoc -- 5.5.3 ESDoc -- 5.5.4 Unterstützte Tags -- 5.5.5 Fazit -- 5.6 Konkatenation, Minification und Obfuscation -- 5.6.1 YUI Compressor -- 5.6.2 Google Closure Compiler -- 5.6.3 UglifyJS2 -- 5.6.4 Fazit -- 5.7 Package Management und Module Bundling -- 5.7.1 Package Management mit NPM -- 5.7.2 Module Bundling mit Webpack -- 5.7.3 Fazit -- 5.8 Building -- 5.8.1 Grunt -- 5.8.2 Gulp JS -- 5.8.3 NPM Scripts nutzen -- 5.8.4 Fazit -- 5.9 Scaffolding -- 5.9.1 Yeoman -- 5.9.2 Starterkits -- 5.10 Zusammenfassung und Ausblick -- 6 JavaScript-Anwendungen testen -- 6.1 Testgetriebene Entwicklung -- 6.1.1 Grundlagen und Begriffsdefinition -- 6.1.2 Testgetriebene Entwicklung in JavaScript -- 6.1.3 QUnit -- 6.1.4 mocha -- 6.1.5 Jest -- 6.1.6 Weitere Frameworks -- 6.1.7 Integration in Build-Tools -- 6.2 Test-Doubles -- 6.2.1 Sinon.JS -- 6.2.2 Spies -- 6.2.3 Stubs -- 6.2.4 Mock-Objekte -- 6.3 Testabdeckung -- 6.3.1 Einführung -- 6.3.2 Blanket.js -- 6.3.3 Istanbul -- 6.4 DOM-Tests -- 6.5 Funktionstests -- 6.5.1 PhantomJS -- 6.5.2 CasperJS -- 6.6 Zusammenfassung und Ausblick -- 7 Fortgeschrittene Konzepte der objektorientierten Programmierung -- 7.1 SOLID -- 7.1.1 Single-Responsibility-Prinzip (SRP) -- 7.1.2 Open-Closed-Prinzip (OCP) -- 7.1.3 Liskovsches Substitutionsprinzip (LSP) -- 7.1.4 Interface-Segregation-Prinzip (ISP) -- 7.1.5 Dependency-Inversion-Prinzip (DIP) -- 7.2 Fluent APIs -- 7.2.1 Einführung -- 7.2.2 Synchrone Fluent APIs -- 7.2.3 Asynchrone Fluent APIs mit Callbacks -- 7.2.4 Asynchrone Fluent APIs mit Promises , 7.2.5 Zugriff auf Original-API -- 7.2.6 Generische Fluent API Factory -- 7.3 Aspektorientierte Programmierung in JavaScript -- 7.3.1 Einführung -- 7.3.2 Begrifflichkeiten -- 7.3.3 AOP durch Methodenneudefinition -- 7.3.4 Die JavaScript-Bibliothek meld -- 7.3.5 AOP über Decorators -- 7.3.6 Die Bibliothek aspect.js -- 7.4 Zusammenfassung und Ausblick -- 8 Die Entwurfsmuster der Gang of Four -- 8.1 Einführung -- 8.2 Erzeugungsmuster -- 8.2.1 Objekte an einer zentralen Stelle erzeugen (Abstract Factory/Factory Method) -- 8.2.2 Nur ein Objekt von einem Typ erstellen (Singleton) -- 8.2.3 Erstellen von komplexen Objekten (Builder) -- 8.2.4 Ähnliche Objekte erstellen (Prototype) -- 8.3 Strukturmuster -- 8.3.1 Die Schnittstelle anpassen (Adapter) -- 8.3.2 Abstraktion und Implementierung entkoppeln (Bridge) -- 8.3.3 Objekte in Baumstrukturen anordnen (Composite) -- 8.3.4 Eigenschaften unter Objekten teilen (Flyweight) -- 8.3.5 Objekte mit zusätzlichen Funktionalitäten ausstatten (Decorator) -- 8.3.6 Einheitliche Schnittstelle für mehrere Schnittstellen (Facade) -- 8.3.7 Den Zugriff auf Objekte abfangen (Proxy) -- 8.4 Verhaltensmuster -- 8.4.1 Über Datenstrukturen iterieren (Iterator) -- 8.4.2 Den Zugriff auf Objekte beobachten (Observer) -- 8.4.3 Eine Vorlage für einen Algorithmus definieren (Template Method) -- 8.4.4 Funktionen als Parameter übergeben (Command) -- 8.4.5 Algorithmen als Funktionen beschreiben (Strategy) -- 8.4.6 Das Zusammenspiel mehrerer Objekte koordinieren (Mediator) -- 8.4.7 Den Zustand eines Objekts speichern (Memento) -- 8.4.8 Operationen auf Objekten von Objekten entkoppeln (Visitor) -- 8.4.9 Das Verhalten eines Objekts abhängig vom Zustand ändern (State) -- 8.4.10 Eine Repräsentation für die Grammatik einer Sprache definieren (Interpreter) -- 8.4.11 Anfragen nach Zuständigkeit bearbeiten (Chain of Responsibility) , 8.5 Zusammenfassung und Ausblick
    Additional Edition: Print version: Ackermann, Philip Professionell entwickeln mit JavaScript Bonn : Rheinwerk Verlag,c2018 ISBN 9783836256872
    Keywords: Electronic books.
    Library Location Call Number Volume/Issue/Year Availability
    BibTip Others were also interested in ...
Close ⊗
This website uses cookies and the analysis tool Matomo. Further information can be found on the KOBV privacy pages