0Pricing
JavaScript Academy · Lektion

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
E1 – Ausdrucksauswerter (Teil 1: + und - von links nach rechts) — Illustration 1

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"));
E1 – Ausdrucksauswerter (Teil 1: + und - von links nach rechts) — Illustration 2

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]));
E1 – Ausdrucksauswerter (Teil 1: + und - von links nach rechts) — Illustration 3

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"));
E1 – Ausdrucksauswerter (Teil 1: + und - von links nach rechts) — Illustration 4

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
E1 – Ausdrucksauswerter (Teil 1: + und - von links nach rechts) — Illustration 5

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.
E1 – Ausdrucksauswerter (Teil 1: + und - von links nach rechts) — Illustration 6

Quiz zum Verhalten bei der Auswertung von links nach rechts

Kurzer Test: Ergebnis von links nach rechts.

E1 – Ausdrucksauswerter (Teil 1: + und - von links nach rechts) — Illustration 7

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.

E1 – Ausdrucksauswerter (Teil 1: + und - von links nach rechts) — Illustration 8

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

  1. E1 – Ausdrucksauswerter (Teil 1: + und - von links nach rechts)
  2. E3 – Log-Analysator (einfache Filter und Zähler)
  3. E3 – Promise-Pool/-Warteschlange (asynchrone Nebenläufigkeit)
← Zurück zu JavaScript Academy