Aufwärmen · Aufgabe 1 von 7
// B1.2 · ca. 30 Min. · Einstieg
Variablen mit let und const
Nach dieser Lektion speichern Sie Werte mit let und const, ändern eine let-Variable und beheben die Fehler, die beim Neuzuweisen einer const, zu frühem Benutzen oder doppeltem Deklarieren entstehen.
Danach können Sie
- Eine Variable mit let deklarieren, neu zuweisen und vorhersagen, was sie enthält
- Zwischen let und const wählen und den TypeError beim Neuzuweisen einer const lesen
- Variablen nach den Regeln benennen und Fehler durch zu frühes Benutzen oder doppeltes Deklarieren beheben
Vorhersagen · Aufgabe 2 von 7
Sagen Sie es vorher, bevor Sie weiterlesen: Was gibt dieser Code aus?
let lives = 3; lives = lives - 1; console.log(lives);Üben · Aufgabe 3 von 7
Ergänzen Sie das Schlüsselwort, sodass das Programm läuft und 12 ausgibt.
____ count = 10; count = count + 2; console.log(count);count = 10;Üben · Aufgabe 4 von 7
Mit welcher Art von Fehler stoppt dieses Programm?
const price = 4; price = 5; console.log(price);Üben · Aufgabe 5 von 7
Ordnen Sie jedem Programm zu, was sein Ausführen ergibt.
Denksport · Aufgabe 6 von 7
Knobelaufgabe. Was gibt dieses Programm aus?
let total = 10; console.log(total); let total = 20; console.log(total);Anwenden · Aufgabe 7 von 7
Kleine Aufgabe. Schreiben Sie einen Schrittzähler. Deklarieren Sie ein Tagesziel von 10000 Schritten und einen Schrittstand, der bei 0 beginnt. Addieren Sie drei Spaziergänge mit 2500, 4000 und 3000 Schritten, geben Sie nach jedem den Stand aus und dann, wie viele Schritte bis zum Ziel fehlen. Entscheiden Sie für jede Variable, ob sie const oder let ist.
Prüfen Sie Ihr Ergebnis anhand dieser Liste
Selbst programmieren
Lesen Sie das ausgearbeitete Beispiel und lösen Sie dann die Übungen. Ihr Code läuft in Ihrem Browser oder auf Ihrem Computer und wird nie hochgeladen.
Ausgearbeitetes Beispiel
Punkte zählen in einem kleinen Spiel
Dieses Programm verfolgt eine Runde eines Spiels. Der Name der Spielerin und die Punkte pro Münze ändern sich nie, sie sind also const. Punktestand und Leben ändern sich im Lauf der Runde, sie sind also let. Führen Sie es aus, versuchen Sie dann, pointsPerCoin neu zuzuweisen, und lesen Sie den Fehler.
main.js
// One round of a game, tracked with const and let.
const player = "Ada";
const pointsPerCoin = 10;
let score = 0;
let lives = 3;
console.log(player, "starts with", score, "points and", lives, "lives");
score = score + 3 * pointsPerCoin;
console.log("After 3 coins:", score);
lives = lives - 1;
console.log("Hit! Lives left:", lives);
score = score + 5 * pointsPerCoin;
console.log("After 5 more coins:", score);
console.log(player, "ends with", score, "points");
Ausführen mit
node main.jsAusgabe
Ada starts with 0 points and 3 lives
After 3 coins: 30
Hit! Lives left: 2
After 5 more coins: 80
Ada ends with 80 points- score wird zweimal neu zugewiesen; jedes Mal benutzt die rechte Seite den aktuellen Wert.
- Die Zeilen, die score und lives ändern, haben kein let: Die Variablen gibt es schon.
- pointsPerCoin ist const, pointsPerCoin = 20; würde das Programm also mit einem TypeError stoppen.
- Die Namen stehen in lowerCamelCase: pointsPerCoin, nicht pointspercoin oder points_per_coin.
Ändern und ausführen
Tab rückt ein, Umschalt+Tab rückt aus. Um den Editor mit der Tastatur zu verlassen, drücken Sie Esc und dann Tab.
Beim ersten Ausführen lädt Ihr Browser den JavaScript-Runner herunter (bis zu 0.1 MB) und speichert ihn im Cache. Ihr Code läuft in der eigenen Engine Ihres Browsers und bleibt auf Ihrem Gerät.
Übungen
Übung 1 von 2
Ein Einkaufsbudget
Sie haben ein Budget von 50 und kaufen drei Dinge: 12.5, dann 20, dann 7.5. Addieren Sie nach jedem Kauf den Preis zu spent und geben Sie die neue Summe aus, als Spent: 12.5 und so weiter. Geben Sie zum Schluss aus, was vom Budget übrig ist, als Left: 10. Rechnen Sie alles mit den Variablen aus; tippen Sie keine Ergebnisse ein.
Tab rückt ein, Umschalt+Tab rückt aus. Um den Editor mit der Tastatur zu verlassen, drücken Sie Esc und dann Tab.
Beim ersten Ausführen lädt Ihr Browser den JavaScript-Runner herunter (bis zu 0.1 MB) und speichert ihn im Cache. Ihr Code läuft in der eigenen Engine Ihres Browsers und bleibt auf Ihrem Gerät.
Hinweise
Hinweis 1
spent = spent + 12.5; addiert den ersten Preis zu dem, was bisher ausgegeben wurde.
Hinweis 2
Geben Sie nach jedem Kauf aus: console.log("Spent:", spent);
Hinweis 3
Was übrig ist, ist budget - spent, berechnet in der letzten Zeile.
Eine Lösung zeigen
Ein möglicher Lösungsweg. Ihrer kann anders aussehen und trotzdem alle Prüfungen bestehen.
const budget = 50;
let spent = 0;
spent = spent + 12.5;
console.log("Spent:", spent);
spent = spent + 20;
console.log("Spent:", spent);
spent = spent + 7.5;
console.log("Spent:", spent);
console.log("Left:", budget - spent);
Auf dem eigenen Computer ausführen
Installieren Sie ECMAScript 2026 oder neuer. Speichern Sie diese Dateien in einem Ordner, öffnen Sie dort ein Terminal und führen Sie die Befehle unten aus.
main.js
const budget = 50;
let spent = 0;
// Add each price to spent and print it: 12.5, then 20, then 7.5.
// Then print what is left of the budget.
main.test.js
import {test} from 'node:test';
import assert from 'node:assert/strict';
import {runMain} from './learnrun.js';
const lines = async () => (await runMain()).trimEnd().split('\n');
test('gibt vier Zeilen aus', async () => {
const got = await lines();
assert.equal(got.length, 4, `das Programm gab ${got.length} Zeile(n) aus, erwartet: 4`);
});
test('gibt nach jedem Kauf die Summe aus', async () => {
const got = await lines();
assert.deepEqual(got.slice(0, 3), ['Spent: 12.5', 'Spent: 32.5', 'Spent: 40'], `die ersten drei Zeilen sind ${JSON.stringify(got.slice(0, 3))}`);
});
test('gibt aus, was übrig ist', async () => {
const got = await lines();
assert.equal(got[3], 'Left: 10', `die vierte Zeile ist ${JSON.stringify(got[3])}, erwartet: "Left: 10"`);
});
package.json
{
"type": "module"
}
package.json sagt Node.js, dass die .js-Dateien Module sind; lassen Sie die Datei im Ordner.
Programm ausführen:
node main.jsPrüfungen ausführen (learnrun.js muss im selben Ordner liegen):
node --testlearnrun.js herunterladenÜbung 2 von 2
Den Wetterbericht reparieren
Dieses Programm soll Berlin 12, dann Berlin 14, dann Hamburg 14 ausgeben, stoppt aber mit einem Fehler. Führen Sie es aus, lesen Sie den Fehler, korrigieren Sie die Zeile und führen Sie es erneut aus: Es gibt drei Fehler, jeder von einer anderen Art. Behalten Sie die Reihenfolge der Zeilen bei.
Tab rückt ein, Umschalt+Tab rückt aus. Um den Editor mit der Tastatur zu verlassen, drücken Sie Esc und dann Tab.
Beim ersten Ausführen lädt Ihr Browser den JavaScript-Runner herunter (bis zu 0.1 MB) und speichert ihn im Cache. Ihr Code läuft in der eigenen Engine Ihres Browsers und bleibt auf Ihrem Gerät.
Hinweise
Hinweis 1
Der erste Fehler ist ein SyntaxError: Ein Name wird zweimal deklariert. Um eine Variable zu ändern, lassen Sie let weg.
Hinweis 2
Namen unterscheiden Groß- und Kleinschreibung: temperature und Temperature sind verschiedene Namen.
Hinweis 3
Eine Variable, die später einen neuen Wert bekommt, muss mit let deklariert werden, nicht mit const.
Eine Lösung zeigen
Ein möglicher Lösungsweg. Ihrer kann anders aussehen und trotzdem alle Prüfungen bestehen.
let city = "Berlin";
let temperature = 12;
console.log(city, temperature);
temperature = temperature + 3;
temperature = temperature - 1;
console.log(city, temperature);
city = "Hamburg";
console.log(city, temperature);
Auf dem eigenen Computer ausführen
Installieren Sie ECMAScript 2026 oder neuer. Speichern Sie diese Dateien in einem Ordner, öffnen Sie dort ein Terminal und führen Sie die Befehle unten aus.
main.js
const city = "Berlin";
let temperature = 12;
console.log(city, temperature);
temperature = temperature + 3;
let temperature = temperature - 1;
console.log(city, Temperature);
city = "Hamburg";
console.log(city, temperature);
main.test.js
import {test} from 'node:test';
import assert from 'node:assert/strict';
import {runMain} from './learnrun.js';
test('läuft ohne Fehler', async () => {
await runMain();
});
test('gibt die drei Berichte aus', async () => {
const got = (await runMain()).trimEnd().split('\n');
assert.deepEqual(got, ['Berlin 12', 'Berlin 14', 'Hamburg 14'], `das Programm gab ${JSON.stringify(got)} aus`);
});
package.json
{
"type": "module"
}
package.json sagt Node.js, dass die .js-Dateien Module sind; lassen Sie die Datei im Ordner.
Programm ausführen:
node main.jsPrüfungen ausführen (learnrun.js muss im selben Ordner liegen):
node --testlearnrun.js herunterladenHäufige Fehler
Eine const neu zuweisen
const lives = 3;
lives = lives - 1;
console.log(lives);
Was Node.js ausgibt
TypeError: Assignment to constant variable.Warum, und die Lösung
Eine const behält immer den Wert, mit dem sie deklariert wurde, also stoppt Zeile 2 das Programm. Muss sich der Wert wirklich ändern, deklarieren Sie ihn mit let: let lives = 3;. Soll er sich nicht ändern, liegt der Fehler in Zeile 2: Speichern Sie den neuen Wert unter einem neuen Namen, etwa const livesLeft = lives - 1;.
Eine Variable über ihrer Deklaration benutzen
console.log(total);
let total = 5;
Was Node.js ausgibt
ReferenceError: Cannot access 'total' before initializationWarum, und die Lösung
Ein Programm läuft von oben nach unten, und ein let oder const lässt sich erst benutzen, wenn seine Zeile gelaufen ist. Die Meldung unterscheidet sich von total is not defined: JavaScript kennt den Namen, aber er hat noch keinen Wert. Setzen Sie die Deklaration über die erste Zeile, die ihn benutzt.
Denselben Namen zweimal deklarieren
let score = 0;
console.log(score);
let score = 10;
console.log(score);
Was Node.js ausgibt
SyntaxError: Identifier 'score' has already been declaredWarum, und die Lösung
let erzeugt eine Variable; es ändert keine. Ein zweites let mit demselben Namen ist ein SyntaxError, die Datei lässt sich also nicht lesen, und nicht einmal Zeile 2 gibt etwas aus. Um score einen neuen Wert zu geben, schreiben Sie score = 10; ohne let.
JavaScript im Browser: die eigene Engine Ihres Browsers in einem abgeschotteten Worker. Syntaxfehler findet acorn 8.18.0, MIT. Lizenz und Quellcode
Abschlussquiz
5 Fragen, ohne Hinweise. Ab 80 % ist die Lektion abgeschlossen.
Erledigen Sie zuerst alle Aufgaben oben, um das Abschlussquiz freizuschalten.