E1 – Ausdrucksauswerter (Teil 1: + und - von links nach rechts)
Einen kleinen Auswerter implementieren, der + und - von links nach rechts verarbeitet. Ziffern und Operatoren tokenisieren, Leerzeichen ignorieren und einfache Schutzprüfungen ergänzen
E1 – Ausdrucksauswerter (Teil 1: + und - von links nach rechts) ist eine kostenlose JavaScript Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des JavaScript Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der JavaScript Academy-Kurs umfasst insgesamt 3 Lektionen.
Was Sie erstellen werden
Ziel: Kleine mathematische Zeichenfolgen ausschließlich mit + und - auswerten.
- Zahlen und Operatoren tokenisieren
- Leerzeichen ignorieren
- Von links nach rechts berechnen
- Einfache Fehlerprüfungen hinzufügen

Tokenizer: Zahlen und Operatoren
Der Tokenizer erstellt aus Ziffern Zahlen und gibt ein Array wie [12, "+", 3, "-", 4] zurück.
// Tokenize: split into numbers and operators; ignore spaces
function tokenize(expr) {
if (typeof expr !== "string") return null;
const tokens = [];
let num = "";
for (let i = 0; i < expr.length; i = i + 1) {
const ch = expr[i];
if (ch === " ") {
// skip spaces
continue;
}
if (ch >= "0" && ch <= "9") {
// build number
num = num + ch;
} else if (ch === "+" || ch === "-") {
// flush pending number
if (num.length > 0) {
tokens.push(Number(num));
num = "";
}
tokens.push(ch);
} else {
// unsupported character
return null;
}
}
if (num.length > 0) tokens.push(Number(num));
return tokens;
}
console.log("tokens:", tokenize("12 + 3 - 4"));
Auswertung von links nach rechts (+/-)
Berechnen Sie von links nach rechts. Vorrangregeln und Klammern werden noch nicht unterstützt.
// Evaluate tokens left-to-right for + and - only
function evalPlusMinus(tokens) {
if (!Array.isArray(tokens) || tokens.length === 0) return null;
// result starts with first number
let acc = tokens[0];
if (typeof acc !== "number") return null;
// step through [op, num] pairs
for (let i = 1; i < tokens.length; i = i + 2) {
const op = tokens[i];
const val = tokens[i + 1];
if ((op !== "+" && op !== "-") || typeof val !== "number") {
return null;
}
if (op === "+") acc = acc + val;
else acc = acc - val;
}
return acc;
}
console.log("eval 10-3-2:", evalPlusMinus([10, "-", 3, "-", 2]));
Sichere Hülle
Erstellen Sie eine sichere Hülle, die für Anfänger entweder einen Wert oder eine kurze Fehlermeldung zurückgibt.
// Glue the pieces: from string to result
function evalExprSimple(expr) {
const tokens = tokenize(expr);
if (tokens === null) {
return { ok: false, error: "Invalid character" };
}
const result = evalPlusMinus(tokens);
if (typeof result !== "number") {
return { ok: false, error: "Invalid sequence" };
}
return { ok: true, value: result };
}
console.log("12 + 3 - 4 =", evalExprSimple("12 + 3 - 4"));
console.log("bad char =", evalExprSimple("2 + a"));

Kleine Fälle ausführen
Halten Sie die Beispiele klein. In späteren Abschnitten fügen wir Vorrangregeln, Klammern und unäres Minus hinzu.
// A few quick checks
const cases = [
"0-3",
"7+5",
"10-3-2",
"2 + 2 + 2",
"9 - 1 + 1"
];
for (const c of cases) {
const r = evalExprSimple(c);
console.log(c, "=>", r.ok ? r.value : r.error);
}
// Note: unary minus (like "-3+2") not handled yet
// This simple version expects a number first

Anleitung für Anfänger
Tipps:
- Beginnen Sie mit einem kleinen Umfang (nur + und -).
- Geben Sie kurze Fehlermeldungen zurück, statt eine Exception auszulösen.
- Schreiben Sie kleine Helfer (tokenize, eval).
- Fügen Sie Funktionen Schritt für Schritt hinzu.

Quiz zum Verhalten bei der Auswertung von links nach rechts
Kurzer Test: Ergebnis von links nach rechts.

Zusammenfassung
Zusammenfassung: Tokenisieren Sie Zahlen und +/-, ignorieren Sie Leerzeichen und werten Sie von links nach rechts aus. Geben Sie kurze Fehlermeldungen zurück. Als Nächstes: Vorrangregeln und Klammern.

Häufig gestellte Fragen
Ist die Lektion „E1 – Ausdrucksauswerter (Teil 1: + und - von links nach rechts)“ kostenlos?
Ja — der vollständige Text von „E1 – Ausdrucksauswerter (Teil 1: + und - von links nach rechts)“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des JavaScript Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der JavaScript Academy-Kurs umfasst insgesamt 3 Lektionen.
Was lerne ich in „E1 – Ausdrucksauswerter (Teil 1: + und - von links nach rechts)“?
Einen kleinen Auswerter implementieren, der + und - von links nach rechts verarbeitet. Ziffern und Operatoren tokenisieren, Leerzeichen ignorieren und einfache Schutzprüfungen ergänzen Du übst JavaScript Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um JavaScript Academy zu starten?
Keine Vorkenntnisse erforderlich. JavaScript Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 3.
Wie lange dauert die Lektion „E1 – Ausdrucksauswerter (Teil 1: + und - von links nach rechts)“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser JavaScript Academy-Lektion Code schreiben und ausführen?
Ja. Jede JavaScript Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- E1 – Ausdrucksauswerter (Teil 1: + und - von links nach rechts)
- E3 – Log-Analysator (einfache Filter und Zähler)
- E3 – Promise-Pool/-Warteschlange (asynchrone Nebenläufigkeit)