JavaScript Grundlagen
Dieses Seminar vermittelt dir in drei Tagen die grundlegenden Konzepte der clientseitigen Webprogrammierung mit JavaScript. Du lernst die Syntax, die Manipulation des Document Object Models (DOM), das Ereignis-Handling (Event Handling), Formulare auswerten und validieren sowie die asynchrone Programmierung. Am Ende kannst du interaktive und dynamische Web-Frontends entwickeln.
Für wen ist dieses Seminar
Webentwickler, Frontend-Designer und Quereinsteiger in die Webprogrammierung.
Das Angebot richtet sich an Unternehmen, Behörden und Selbstständige.
Was du mitbringen solltest
Grundlegende Kenntnisse in HTML und CSS. Programmier-Vorerfahrungen sind hilfreich, aber nicht zwingend erforderlich.
Detaillierte Inhalte
Einführung und Entwicklungsumgebung
- Historie und Rolle von JavaScript im Web-Stack (ECMAScript-Standards)
- Einbindung von JavaScript in HTML (
<script>-Tag, externe Dateien) - Nutzung der Browser-Entwicklertools (Console, Debugger, Network-Tab)
- Der Strict Mode (
"use strict") zur Fehlervermeidung - Ausgabe von Daten (
console.log,alert,prompt)
Variablen, Datentypen und Operatoren
- Deklaration von Variablen:
letundconst(Abgrenzung zuvar) - Primitive Datentypen:
String,Number,Boolean,Null,Undefined,Symbol - Dynamische Typisierung und Typumwandlung (Type Coercion vs. Explicit Casting)
- Template Literals (Template Strings) für komplexe Zeichenketten
- Operatoren: Arithmetisch, Zuweisung, Vergleich (
==vs.===), Logisch
Kontrollstrukturen und Ablaufsteuerung
- Bedingte Anweisungen:
if,else if,else - Mehrfachverzweigungen mit
switch - Ternärer Operator (
? :) - Schleifenkonstrukte:
for,while,do-while - Schleifensteuerung (
break,continue)
Funktionen und Scope
- Deklaration und Aufruf von Funktionen
- Funktionsausdrücke (Function Expressions) und anonyme Funktionen
- Arrow Functions (Pfeilfunktionen): Syntax und Besonderheiten
- Parameter, Argumente und Default-Parameterwerte
- Gültigkeitsbereiche (Scope): Block Scope, Function Scope und Lexical Scope
- Grundlagen von Closures
Datenstrukturen: Arrays und Objekte
- Arrays:
- Deklaration und Zugriff auf Elemente
- Iteration (
for...of,forEach) - Wichtige Array-Methoden:
push,pop,shift,unshift,splice,slice - Funktionale Array-Methoden:
map,filter,reduce,find - Objekte:
- Object Literals: Eigenschaften (Properties) und Methoden
- Zugriff über Punkt- und Klammernotation
- Iteration über Objekte (
for...in,Object.keys,Object.values) - Einführung in das JSON-Datenformat (JavaScript Object Notation)
- Destructuring und Spread (Einstieg):
- Destrukturierung von Arrays und Objekten
- Spread-Operator (
...) zum Kopieren und Zusammenführen von Arrays/Objekten
Document Object Model (DOM) Manipulation
- Aufbau und Struktur des DOM-Baums
- Selektieren von Elementen:
getElementById,querySelector,querySelectorAll - Navigation im DOM: Eltern-, Kind- und Geschwisterknoten
- Manipulation von Elementen:
innerHTML,textContent,createElement,appendChild - Ändern von HTML-Attributen und CSS-Klassen (
classList)
Event-Handling (Ereignissteuerung)
- Funktionsweise von Events in JavaScript
- Registrierung von Event-Listenern (
addEventListener) - Wichtige Event-Typen: Maus-Events, Tastatur-Events, Formular-Events
- Das Event-Objekt auswerten (
e.target,e.preventDefault()) - Event Bubbling und Event Capturing (Einführung in Event Delegation)
Formulare auswerten und validieren
- Zugriff auf Formularfelder und deren Werte,
FormData - Eingaben validieren: Pflichtfelder, Muster, native Constraint-Validation
- Absenden abfangen und verarbeiten (
submit-Event,e.preventDefault())
Asynchrone Programmierung (Grundlagen)
- Das asynchrone Modell von JavaScript (Event Loop)
- Timer-Funktionen:
setTimeoutundsetInterval - Einführung in Promises:
resolve,reject,.then(),.catch() - Moderne asynchrone Syntax:
asyncundawait - HTTP-Anfragen mit der Fetch API durchführen (REST-APIs konsumieren)
ES-Module (import/export, ES6/ECMAScript 2015)
- Aufteilen von Code in eigenständige Module
- Export-Syntax: Named Exports vs. Default Export
- Import-Syntax und Einbindung im Browser (
<script type="module">)
Fehlerbehandlung und Debugging
- Syntax- und Laufzeitfehler identifizieren
- Exception Handling:
try,catch,finally - Eigene Fehler werfen (
throw new Error()) - Breakpoints und schrittweises Debugging in den Browser-DevTools
Dauer: 3 Tage
Was du danach kannst
- Interaktive Webseiten mit DOM-Manipulation und Event-Handling umsetzen
- Formulare auswerten, validieren und ihr Absenden verarbeiten
- Mit Arrays und Objekten inklusive Destructuring und Spread arbeiten
- Asynchrone Abläufe mit Promises und
async/awaitsteuern - REST-APIs per Fetch API konsumieren
- Code in ES-Module aufteilen und einbinden
Verwandte Seminare
- JavaScript Advanced — der direkte Aufbaukurs für Architektur, Design Patterns und fortgeschrittene ES6+-Themen
- HTML5 Struktur und Semantik — das passende Fundament für die Markup-Seite deiner Webseiten
- CSS3 Grundlagen und modernes Webdesign — die visuelle Gestaltung als Ergänzung zur Interaktivität
Dein Dozent
Frank Glück schult seit mehr als 30 Jahren und programmiert seit fast 40 Jahren. Seit 1999 ist er auch als Dozent für die GFU tätig. Er begleitet die Entwicklung des Webs seit den 1990er-Jahren.
Häufige Fragen (FAQ)
Braucht man Vorkenntnisse für das JavaScript-Grundlagenseminar?
Programmiervorkenntnisse sind nicht nötig, HTML- und CSS-Grundlagen solltest du mitbringen. Der Kurs startet bei den Grundlagen von Variablen, Kontrollstrukturen und Funktionen und eignet sich ideal für Umsteiger und Einsteiger in die moderne Web- und Backend-Entwicklung.
Warum ist das Verständnis des Event Loops in JavaScript so wichtig?
JavaScript ist single-threaded und arbeitet mit einer ereignisgesteuerten Schleife (Event Loop). Wer Callbacks, Microtasks, Promises und async/await versteht, verhindert blockierende UI-Threads und schreibt performante, nicht-blockierende Webanwendungen.
Wie wird das Gelernte im Kurs geübt?
Jedes theoretische Thema wird durch praktische Live-Coding-Übungen im Browser und in Node.js vertieft – von DOM-Manipulationen über Formularvalidierung bis zum Konsumieren externer REST-APIs per fetch().