Skip to content

JavaScript

Entwicklungsumgebung & Grundlagen

Ziele

  • Verstehen, wie man JavaScript-Dateien im Browser und mit Node.js ausführt.
  • Erste kleine JavaScript-Programme schreiben.

Themen & Aufgaben

  • Umgebung einrichten
  • Editor (VS Code, Sublime, WebStorm)
  • Node.js für das Ausführen außerhalb des Browsers
  • JavaScript im Browser einbinden
  • script-Tag, inline vs. externe Skripte
  • Erste Ausgabe
  • console.log(“Hello, World!”)
  • Unterschiede: alert(), document.write(), console.log()

Grundlegende Sprachelemente

Ziele

  • Variablendeklaration und Datentypen verstehen.
  • Kenntnisse über Operatoren, Schleifen und Bedingungen bekommen.

Themen & Aufgaben

  • Variablen & Datentypen
  • var, let, const
  • Primitive (String, Number, Boolean, null, undefined, Symbol) und Objekte/Arrays
  • Operatoren & Ausdrücke
  • Arithmetische Operatoren (+, -, *, /, %)
  • Vergleichsoperatoren (== vs. ===)
  • Kontrollstrukturen
  • if/else, switch, ternärer Operator
  • Schleifen: for, while, do…while, for…of, for…in
  • Übung
  • FizzBuzz: Zahlen von 1 bis 100 ausgeben, bestimmte Bedingungen prüfen

Funktionen & Modularisierung

Ziele

  • Unterschied zwischen Funktionsdeklarationen und -ausdrücken verstehen.
  • Modularen Code schreiben (ES6-Module).

Themen & Aufgaben

  • Funktionen schreiben
  • Funktionsdeklaration vs. Funktionsausdruck
  • Arrow Functions (() => )
  • Module & Scope
  • Import/Export in ES6 (import, export)
  • Lokaler vs. globaler Scope
  • Übung
  • Kleine Bibliothek (z.B. Rechenfunktionen) auf mehrere Dateien aufteilen und importieren

Objekte & Arrays

Ziele

  • Verständnis für objektorientierte Ansätze in JavaScript (Prototype-Based Inheritance).
  • Arrays und ihre Methoden (map(), filter(), reduce()) beherrschen.

Themen & Aufgaben

  • Objekterstellung & Prototypen
  • Literalschreibweise vs. new Object()
  • Prototype-Kette
  • Arrays & Array-Methoden
  • forEach, map, filter, reduce, find etc.
  • Klassen (ES6)
  • class, Konstruktor, Methoden
  • Übung
  • Erstelle und manipuliere eine Produktliste (sortieren, filtern).
  • Schreibe eine Klasse für ein Fahrzeug (Marke, Baujahr, etc.).

Browser-DOM & Events

Ziele

  • DOM-Aufbau verstehen und mit JavaScript manipulieren.
  • Auf Nutzereingaben reagieren (Eventhandling).

Themen & Aufgaben

  • DOM-Abfragen & -Veränderungen
  • document.getElementById(), document.querySelector(), classList
  • Eventhandling
  • addEventListener(“click”, …), input, change
  • Übung
  • To-Do-Liste: Einträge erstellen, anzeigen, editieren, löschen

Asynchrones JavaScript

Ziele

  • Daten von einem Server abrufen (Ajax, Fetch).
  • Asynchrone Abläufe über Promises oder async/await steuern.

Themen & Aufgaben

  • Callbacks & Promises
  • Unterschied Callbacks vs. Promises
  • Promise-Chaining
  • Fetch API & async/await
  • Daten von einer öffentlichen API (z.B. JSONPlaceholder) abrufen
  • Error Handling
  • try…catch, .catch()
  • Übung
  • Kleine App, die Daten von einer REST-API abruft und anzeigt

Moderne JavaScript-Features & Tooling

Ziele

  • Überblick über neue Sprachfeatures (ES6+).
  • Praktische Tools für Entwicklung & Auslieferung kennenlernen.

Themen & Aufgaben

  • Wichtige ES6+/ESNext-Features
  • Destructuring, Spread/Rest-Operator, Template Strings, Default-Parameter
  • Build-Tools & Pakete
  • npm, yarn
  • Babel, Webpack, Vite
  • Linting & Testing
  • ESLint, Jest, Mocha/Chai
  • Übung
  • Projekt mit Webpack/Vite einrichten, Linting und erste Tests konfigurieren

Frameworks & Bibliotheken

Ziele

  • Größere Projekte strukturieren.
  • Unterschiedliche Ansätze kennenlernen (Frontend, Backend).

Themen & Aufgaben

  • Frontend-Frameworks (Beispiel: React, Vue, Angular)
  • Komponenten, State-Management, Lifecycle
  • Backend mit Node.js & Express
  • REST-APIs erstellen
  • Übung
  • Kleine Web-App mit Datenanzeige & Filter
  • Einfacher REST-Server mit Node.js/Express

Praktische Projekte

Ziele

  • Das Gelernte anwenden und vertiefen.
  • „Big Picture“: Wie fügt sich JavaScript in eine Komplettanwendung ein?

Projektideen

  • Todo-App mit Serveranbindung
  • Frontend mit React/Vue/Vanilla JS
  • Backend mit Node.js/Express
  • Datenbank (MongoDB, MySQL)
  • Echtzeitanwendung mit WebSockets
  • Chat-App (Socket.io)
  • Portfolio-Website
  • Präsentation Deiner JavaScript-Projekte und Code-Beispiele

Vertiefung & Spezialisierung

Ziele

  • Je nach Interesse tief in bestimmte Bereiche einsteigen.
  • Expertenwissen aufbauen (z.B. Performance, Testing, Sicherheit).

Mögliche Vertiefungen

  • Performanceoptimierung & Best Practices
  • Lighthouse, Chrome DevTools
  • Code-Splitting, Lazy Loading
  • Security im Frontend & Backend
  • Token-Handling (JWT), XSS, CSRF
  • Testing & CI/CD
  • Unit-Tests, Integrationstests (z.B. Cypress)
  • Automatisierte Pipelines (GitHub/GitLab)

Allgemeine Tipps

  • Regelmäßiges Üben: Kleine Projekte umsetzen, um Wissen zu festigen.
  • Git & Versionskontrolle: Eigene Projekte versionieren, kollaborativ arbeiten.
  • Dokumentation: MDN (Mozilla Developer Network) für JavaScript-Referenzen nutzen.
  • Online-Kurse & Communities: freeCodeCamp, Codecademy, Udemy, YouTube etc. für praktische Anleitungen.

Beispielhafter Zeitplan

  • Woche 1: Basics (Variablen, Datentypen, Funktionen).
  • Woche 2: Kontrollstrukturen, Schleifen, kleinere Miniprojekte (FizzBuzz).
  • Woche 3: Objekte, Arrays, DOM-Manipulation.
  • Woche 4: Asynchrones JavaScript (Promises, Fetch, async/await).
  • Woche 5: Tooling (npm, Webpack/Vite), Testing (Jest, Mocha).
  • Woche 6: Erstes Framework (React/Vue/Angular) oder Node.js (Backend).
  • Woche 7+: Fortgeschrittene Projekte & Spezialisierung (Frontend/Backend, Testing).

Fazit

  • JavaScript ist eine vielseitige Sprache, die sowohl im Frontend als auch im Backend eingesetzt werden kann.
  • Regelmäßiges Üben und das Arbeiten an Projekten sind der Schlüssel zum Erfolg.