Syntax ·
Variablen ·
Datentypen ·
Operatoren ·
Funktionen ·
Strings
JavaScript ist die Sprache des Webs – von interaktiven Webseiten bis zu Backend-Systemen mit Node.js. Diese Grundlagen sind der Einstieg in die JavaScript-Programmierung.
JavaScript-Syntax ist C-ähnlich und zeichnet sich durch geschweifte Klammern {} für Codeblöcke und Semikolons ; als Anweisungsende aus. Die Sprache ist case-sensitiv (Groß-/Kleinschreibung wird beachtet).
| Regel | Beschreibung |
|---|---|
| // | Einzeiliger Kommentar |
| /* ... */ | Mehrzeiliger Kommentar |
| ; | Semikolon beendet eine Anweisung (optional, aber empfohlen) |
| {} | Geschweifte Klammern definieren Codeblöcke (if, for, function) |
| case-sensitiv | meinName und MeinName sind unterschiedliche Variablen |
Variablen in JavaScript werden mit let, const oder var deklariert. let und const sind block-scoped, var ist function-scoped.
| Regel | Beschreibung |
|---|---|
| Buchstaben, Ziffern, _ , $ | Erlaubte Zeichen (keine Sonderzeichen) |
| Nicht mit Ziffer | Name darf nicht mit einer Zahl beginnen |
| Groß-/Kleinschreibung | JavaScript unterscheidet zwischen Groß- und Kleinschreibung |
| Reservierte Wörter | Nicht verwenden: let, const, if, for, while, etc. |
| Konventionen | camelCase für Variablen und Funktionen (empfohlen) |
Datentypen in JavaScript werden in primitive Typen und Objekte unterteilt. Die Typüberprüfung erfolgt mit typeof.
| Typ | Beschreibung | Beispiel |
|---|---|---|
| number | Zahlen (ganze Zahlen & Gleitkomma) | 42, 3.14, -7 |
| string | Zeichenketten | "Hallo", 'Welt', `Hallo ${name}` |
| boolean | Wahrheitswerte | true, false |
| undefined | Nicht definiert (noch kein Wert) | let x; // undefined |
| null | Leerwert (bewusst kein Wert) | null |
| object | Objekte, Arrays, Funktionen | {name: "Anna"}, [1, 2, 3] |
| symbol | Eindeutige, unveränderbare Werte (ES6) | Symbol("id") |
| bigint | Sehr große ganze Zahlen (ES2020) | 9007199254740991n |
typeof null gibt "object" zurück – das ist ein bekannter Bug in JavaScript, der aus historischen Gründen besteht.
Operatoren führen Berechnungen und Vergleiche durch. JavaScript bietet eine breite Palette von arithmetischen, Vergleichs- und logischen Operatoren.
| Kategorie | Operatoren |
|---|---|
| Arithmetik | +, -, *, /, % (Modulo), ** (Potenz) |
| Vergleich | == (lose), === (streng), !=, !==, <, >, <=, >= |
| Logik | && (UND), || (ODER), ! (NICHT) |
| Zuweisung | =, +=, -=, *=, /=, %=, **= |
| Inkrement/Dekrement | ++, -- |
| Nullish Coalescing | ?? |
| Optional Chaining | ?. |
Funktionen sind wiederverwendbare Codeblöcke. Sie können Parameter entgegennehmen und Werte mit return zurückgeben. Arrow Functions sind eine kürzere Schreibweise (ES6).
| Art | Beschreibung | Beispiel |
|---|---|---|
| Function Declaration | Klassische Funktion (hoisting) | function add(a, b) { return a + b; } |
| Function Expression | Funktion als Variable (kein hoisting) | const add = function(a, b) { return a + b; }; |
| Arrow Function | Kurze Syntax (ES6) | const add = (a, b) => a + b; |
| Implicit Return | Arrow ohne { } return automatisch | const double = x => x * 2; |
() => {}) sind kürzer und haben ein anderes this-Verhalten. Sie sind ideal für Callbacks und kurze Funktionen.
Strings sind Zeichenketten in JavaScript. Sie sind unveränderbar (immutable) und bieten viele Methoden zur Textverarbeitung. Template-Strings (Backticks) ermöglichen Interpolation.
| Methode | Beschreibung | Beispiel |
|---|---|---|
| str.length | Länge des Strings | "Hallo".length // 5 |
| str.toUpperCase() | Alle Zeichen in Großbuchstaben | "hallo".toUpperCase() // "HALLO" |
| str.toLowerCase() | Alle Zeichen in Kleinbuchstaben | "HALLO".toLowerCase() // "hallo" |
| str.trim() | Leerzeichen am Anfang/Ende entfernen | " hallo ".trim() // "hallo" |
| str.split(sep) | Zerlegt String in Array | "a,b,c".split(",") // ["a","b","c"] |
| str.replace(old, new) | Ersetzt Teilstring (nur erstes Vorkommen) | "Hallo".replace("a", "e") // "Hello" |
| str.replaceAll(old, new) | Ersetzt alle Vorkommen (ES2021) | "aab".replaceAll("a","x") // "xxb" |
| str.includes(sub) | Prüft auf Teilstring | "Hallo".includes("ll") // true |
| str.startsWith(prefix) | Prüft auf Anfang | "Hallo".startsWith("Ha") // true |
| str.endsWith(suffix) | Prüft auf Ende | "Hallo".endsWith("lo") // true |
| str.indexOf(sub) | Findet Position (oder -1) | "Hallo".indexOf("ll") // 2 |
| str.slice(start, end) | Extrahiert Teilstring | "Hallo".slice(0, 3) // "Hal" |
`Hallo ${name}!`. Sie unterstützen auch mehrzeilige Strings.
//
let x = 5
typeof
===
=>
`${}`
const name = "Anna"; ·
console.log(`Hallo ${name}!`); ·
if (x > 5) { console.log("Groß"); }