Template Literals und String-Methoden in JavaScript
Template Literals und String-Methoden in JavaScript
~12 Min. Lesezeit Zuletzt aktualisiert am 8. August 2026
Wir haben Template Literals bereits mehrfach genutzt – Zeit, sie und die wichtigsten String-Methoden systematisch zu behandeln, um unser Haushaltsbuch besser auszugeben.
Template Literals: Interpolation mit Backticks
const beschreibung = 'Miete';
const betrag = -850;
// Alte, umständliche String-Verkettung:
const zeileAlt = beschreibung + ': ' + betrag + ' EUR';
// Template Literal, lesbarer:
const zeileNeu = `${beschreibung}: ${betrag} EUR`;
console.log(zeileAlt, zeileNeu); // identisches Ergebnis: 'Miete: -850 EUR'Innerhalb ${...} steht ein VOLLSTÄNDIGER JavaScript-Ausdruck – nicht nur eine Variable:
const betrag = -850;
console.log(`Typ: ${betrag > 0 ? 'Einnahme' : 'Ausgabe'}, Betrag: ${Math.abs(betrag)} EUR`);
// 'Typ: Ausgabe, Betrag: 850 EUR'Mehrzeilige Strings
const quittung = `Haushaltsbuch-Quittung
----------------------
Beschreibung: Miete
Betrag: -850 EUR`;
console.log(quittung);Mit normalen Anführungszeichen ('...'/"...") wäre das nur über explizite \n-Zeichen möglich – Template Literals übernehmen echte Zeilenumbrüche 1:1.
Wichtige String-Methoden
const beschreibung = ' Wocheneinkauf Supermarkt ';
console.log(beschreibung.trim()); // 'Wocheneinkauf Supermarkt' - Leerzeichen am Rand entfernen
console.log(beschreibung.toUpperCase()); // ' WOCHENEINKAUF SUPERMARKT '
console.log(beschreibung.toLowerCase()); // ' wocheneinkauf supermarkt '
console.log(beschreibung.includes('Markt')); // true
console.log(beschreibung.trim().split(' ')); // ['Wocheneinkauf', 'Supermarkt']
console.log(beschreibung.trim().replace('Supermarkt', 'Discounter')); // 'Wocheneinkauf Discounter'const kategorie = 'Miete';
console.log(kategorie.padEnd(12, '.')); // 'Miete.......' - auf 12 Zeichen auffüllen, rechts
console.log(kategorie.padStart(12, '0')); // '0000000Miete' - links auffüllen
console.log(kategorie.slice(0, 3)); // 'Mie' - Teilstring, wie bei Arrays
console.log(kategorie.startsWith('Mie')); // true
console.log(kategorie.length); // 5Zahlen formatieren: toFixed und Intl.NumberFormat
const betrag = -850.5;
console.log(betrag.toFixed(2)); // '-850.50' - IMMER zwei Nachkommastellen, gibt einen STRING zurück
// Für echte Währungsformatierung (Tausendertrennzeichen, Währungssymbol):
const formatierer = new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' });
console.log(formatierer.format(betrag)); // '-850,50 €'Tipp: Intl.NumberFormat ist eine eingebaute Browser-/Node.js-API (kein externes Paket nötig!) und berücksichtigt automatisch landesspezifische Konventionen – Tausendertrennzeichen, Dezimaltrennzeichen und Währungssymbol-Position unterscheiden sich je nach Locale.
Eine formatierte Übersicht für unser Haushaltsbuch
const transaktionen = [
{ beschreibung: 'Gehalt Januar', betrag: 2400, kategorie: 'Gehalt' },
{ beschreibung: 'Miete Januar', betrag: -850, kategorie: 'Miete' },
{ beschreibung: 'Wocheneinkauf', betrag: -60, kategorie: 'Lebensmittel' },
];
const formatierer = new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' });
console.log('=== Haushaltsbuch-Übersicht ===');
for (const t of transaktionen) {
const zeichen = t.betrag > 0 ? '+' : '';
console.log(`${t.kategorie.padEnd(14, '.')} ${zeichen}${formatierer.format(t.betrag)} | ${t.beschreibung}`);
}
const saldo = transaktionen.reduce((summe, t) => summe + t.betrag, 0);
console.log(`${'Saldo'.padEnd(14, '.')} ${formatierer.format(saldo)}`);Damit ist Phase 2 (Funktionen & Datenstrukturen) abgeschlossen! Phase 3 widmet sich Scope, Closures, this und der objektorientierten Programmierung mit Klassen.