# JavaScript - Advanced ## JavaScript für Fortgeschrittene ** Seminarziel ** Sie lernen die fortgeschrittenen Techniken, Funktionsweisen und Sprachkonstrukte von JavaScript. Zusätzlich werden neue, spanndende Technologien wie Offline-Storage, eigene Threads und Socketverbindungen behandelt, durch die die Entwicklung *echter*, sinnvoller Offline-Anwendungen möglich ist. In der Schulung kommen die Techniken in den Versionen von JavaScript / ECMAScript 5/6/x zum Einsatz, die zum jeweiligen Seminarzeitpunkt von den meisten Browsern unterstützt werden. ** Agenda ** - Erfassen der Kenntnisstände der TeilnehmerInnen im Dialog, durch kleine Demos und Beispielsnippets - Kurzer Rückblick - Die Besonderheiten der Attribute `async` und `defer` - Funktionen - Arbeiten mit Funktionen - anonyme Funktionen - Parameter, optionale Parameter - Restparameter - Das Objekt `arguments` - Rückgabewert definieren - Callback-Funktionen - Intervalle und verzögerte Ausführung mit `setInterval(...)` und `setTimeout(...)` - Factory Pattern - Objekte als `return`-Wert - Closures - Funktionen als `return`-Wert - IIFE - immediately invoked function expression - Kapselung mit IIFE - IIFE mit Interface als API für den Zugriff auf gekapselte Zustände und Eigenschaften - Arrow-Functions / Pfeilfunktionen nutzen und verstehen. ZB `()=>{}` - Die Methoden `.bind()`, `.call()` und `.apply()` anwenden und verstehen. - Die Kontexte von `this` - Prototyping - Arbeiten mit Prototypen - Eigene Prototypen erstellen - Native Objekte (zB String, Array, Number, etc) prototypisch erweitern - Eventhandling - Mouse-Events, Tastatur-Events - Unterschiede des Eventhandling als HTML-Attribut, innerhalb des JavaScript mit `Obj.on...` und `Obj.addEventListener("EVT", ...` - Das Event-Objekt - Capturing und Bubbling - Unterbinden von Default-Funktionalitäten mit `evt.preventDefault()` - Unterbinden des Capturing oder Bubbling mit `evt.stopPropagation()` - Effiziente Ereignisverarbeitung mit Event Delegation - OOP - Objektorierentierte Programmierung mit JavaScript - JSON - Objekte mit JSON erstellen - Prototypen und prototypische Vererbung - Klassen - Arbeiten mit Klassen `class` und Vererbung `extends` - Konstruktoren mit `constructor()` und `super()` - Zugriffsmodifizierer - Konstruktoren - Instanzen mit `new` erzeugen - Das Factory-Pattern - Objekte, Eigenschaften und Methoden schützen - Neue Methoden der Konstruktor-Klasse `Object` in ES 5 - Objekte kopieren/klonen - Deep Copy von Objekten : Problematik und Lösungen - DOM Manipulation - Knotenpunkte und Kollektionen selektieren mit `getElementById()`, `getElementByTagName()`, `querySelector()`, `querySelectorAll()`, etc - neue Inhalte lesen, setzen und löschen - `innerHTML`, `insertAdjacentHTML(...)` und Co. - HTML-Attribute lesen, setzen und löschen - CSS Eigenschaften lesen und verändern - Die Eigenschaft `Element.classList` mit ihren Methoden - Stabile Anwendungen mit JavaScript - Der Strict Mode `use strict` - Kapselung durch IIFE - Scopes in JavaScript verstehen (globaler Scope, Funktions- und Blockscope) - Exception Handling - Fehlerbehandlung mit `try`, `catch`, `throw` und `finally` - Probleme und Lösungen in unterschiedlichen Browser(versionen) - Polyfills und Fallbacks - Synchrone und asynchrone Ausführung - asynchrone Codeausführung am Beispiel von `setTimeout(...)` - Promises - Eigene Promises erstellen mit `new Promise(function(resolve, reject) { ... });` - Die Methoden `Promise.all()`, `Promise.race()`, `Promise.reject()` und `Promise.resolve()` am praktischen Beispiel verstehen und anwenden. - `async` und `await` Eigene Funktionen in Promises umwandeln - Was Sie zudem wissen oder mal gehört haben sollten: - Code Konventionen / Programming Style Guide - Best Practice - Performance Tipps - Häufig gemachte Fehler in JavaScript - Code-Qualität - JSLint, JSHint, ESLint und Co. - Unterschiede zwischen JSLint, JSHint, ESLint und Co - Arbeiten mit Quality-Checkern online und offline unter NodeJS - Erweitern des VSCode um Codequality-Checker als PlugIn - Unit-Testing - Einführung in die Grundlagen und den Sinn und Zweck von Unit-Tests - Überblick über wichtige Unit-Testing Frameworks - Unit-Testing mit `Jasmine` - Mit `Jasmine` im Browser testen - Einrichten der Unit-Tests unter NodeJS - Einbinden von Unit-Tests im Taskrunner (zB grunt) - Externe Module einbinden - Überblick über die verschiedenen Ansätze und Lösungen, externe Skripte zu laden und/oder bei Bedarf nachzuladen - `script src` - `document.createElement("script")` - Arbeiten mit dem ScriptLoader `RequireJS` - `import` und `export` Anweisungen des ECMAScript 2015 / ES 6 - Mittels `$.getScript()` mit jQuery - AJAX - AJAX Grundlagen - Daten asynchron vom Server mit AJAX nachladen - JSON- und XML-Daten laden und verarbeiten - Erstellen einer Build-Umgebung mit NodeJS und dem Taskrunner `grunt` - Grundlagen zu Taskrunnern wie zB `grunt` oder `gulp` am Beispiel von `grunt` auf Basis von NodeJS - Erstellen einer sinnvollen Ordnerstruktur - Installation von `grunt` und `grunt-cli` - Installieren weiterer Module zum Zusammenfassen, und optimieren eigener Programmteile - Watch-Modul zum automatischen Überwachen von Änderungen installieren und konfigurieren. - Weitere wichtige APIs - Websockets - Webworker - Offline Storage mit `localStorage` und `sessionStorage` - Sourcecode richtig dokumentieren mit JSDoc ** Zielgruppe ** Anwendungsentwickler, Frontend-EntwicklerInnen, WebentwicklerInnen, ProgrammiererInnen, Interessierte Dieses Seminarthema richtet sich an alle, die bereits regelmäßig mit JavaScript entwickeln und ihr Wissen auf einen aktuellen Stand bringen möchten. ** Voraussetzungen ** Sie sollten über mit JavaScript programmiert haben. Zudem verfügen Sie über Basiskenntnisse in HTML und CSS. | | | |---|---| | ** Empfohlene Dauer ** | 3-4 Tage | | ** Preis ** | Sie erhalten von mir ein individuelles Angebot. |
Seminarthemen
Programmieren lernen fuer Nicht ProgrammiererInnen
Vue 3 mit TypeScript
Grundlagen der Programmierung
JavaScript Fundamentals Grundlagen
JavaScript Advanced Fortgeschritten
JavaScript fuer Sprachumsteiger
Weitere Links
index
Gute Gruende fuer einen Seminarbesuch
Referenzen
Allgemeine Schulungsbedingungen
Impressum
Datenschutz
MENU
TOP