MINT lernen

Übung — AFB III (Beurteilen)

Zehn Aufgaben zum Begründen, Vergleichen und Beurteilen — mit Strategie-Tipps und Musterlösungen.

Dein Fortschritt:
0 / 0 Aufgaben
3

Aufgabenblock — AFB III

Begründen statt nur ausführen: Fehler erklären, Varianten vergleichen und Entscheidungen treffen. Formuliere deine Antwort erst selbst in ganzen Sätzen, bevor du die Musterlösung aufklappst.

A1
Klasse oder ID?
AFB III

Begründe in 3–4 Sätzen, warum man für die Gestaltung von 20 gleich aussehenden Produktkarten eine Klasse und keine ID verwendet.

Hinweis: Denke daran, wie oft eine ID auf einer Seite vorkommen darf.

Strategie: Vergleiche, wie viele Elemente jeder Selektor treffen darf.Warum so? Die Regel folgt direkt aus der Definition.
Lösungsskizze: Klasse: beliebig oft · ID: einmal · eine Regel für alle
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: Eine ID darf auf einer Seite nur an genau einem Element stehen, eine Klasse dagegen an beliebig vielen. Mit class="karte" und einer einzigen Regel .karte { … } sehen alle 20 Karten gleich aus. Mit IDs bräuchte man 20 verschiedene Namen und 20 Regeln. Ändert sich die Gestaltung, muss man mit der Klasse nur eine Stelle anpassen.

A2
Warum ans Ende des body?
AFB III

Erkläre, warum das <script>-Element für ein Programm, das Elemente der Seite ändert, am Ende des body steht.

Hinweis: Der Browser liest die Datei von oben nach unten.

Strategie: Überlege, was beim Ausführen des Programms schon geladen ist.Warum so? Die Reihenfolge des Ladens erklärt den Fehler.
Lösungsskizze: Laden von oben · Elemente noch nicht da · null · Fehler
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: Der Browser baut die Seite von oben nach unten auf und führt ein Script sofort aus, wenn er es erreicht. Steht es im head, gibt es die Elemente des body noch nicht; querySelector liefert dann null, und die nächste Zeile bricht ab. Am Ende des body sind alle Elemente schon geladen und können gefunden werden.

A3
Plus und Minus mit Text
AFB III

Erkläre, warum "5" + 3 den Wert "53", "5" - 3 aber den Wert 2 hat.

Hinweis: Frage dich, welche Bedeutungen + und − haben können.

Strategie: Vergleiche, was + mit Texten macht und was − mit Texten machen könnte.Warum so? Der Unterschied liegt in den Operatoren, nicht in den Zahlen.
Lösungsskizze: + verkettet oder addiert · − nur rechnen · Umwandlung
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: Das Zeichen + hat in JavaScript zwei Bedeutungen: Addieren und Texte aneinanderhängen. Ist einer der Werte ein Text, wird verkettet: "5" + 3 ergibt „53“. − kann nur rechnen; deshalb wandelt JavaScript den Text "5" automatisch in die Zahl 5 um und rechnet 5 − 3 = 2. Um sicherzugehen, wandelt man Eingaben mit Number um.

A4
=, === und if
AFB III

Beurteile die Aussage: „Ob ich in einer Bedingung = oder === schreibe, ist egal — beides prüft, ob zwei Werte gleich sind.“

Hinweis: Teste gedanklich if (x = 5) mit x = 3.

Strategie: Erkläre beide Zeichen und zeige an einem Beispiel den Unterschied.Warum so? Ein Gegenbeispiel widerlegt die Aussage.
Lösungsskizze: = speichert · === vergleicht Wert und Typ · Bedingung immer wahr
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: Die Aussage ist falsch. = ist eine Zuweisung: if (x = 5) speichert 5 in x, und die Bedingung gilt dann immer als erfüllt — auch wenn x vorher 3 war. === vergleicht Wert und Typ und liefert true oder false, z. B. ist 5 === "5" false. In Bedingungen gehört also immer ===.

A5
Die Reihenfolge der Bedingungen
AFB III

Ein Programm vergibt ab 90 Punkten „Gold“ und ab 70 Punkten „Silber“. Begründe mit einem Beispiel, warum punkte >= 90 vor punkte >= 70 geprüft werden muss.

Hinweis: Wähle eine Punktzahl, die beide Bedingungen erfüllt.

Strategie: Spiele beide Reihenfolgen mit 95 Punkten durch.Warum so? Ein konkretes Beispiel macht die Regel überzeugend.
Lösungsskizze: erste wahre Bedingung gewinnt · 95 ≥ 70 · Gold nie erreicht
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: In einer if-else-if-Kette läuft nur der Block der ersten wahren Bedingung. Bei 95 Punkten sind beide Bedingungen wahr. Steht >= 70 oben, erhält man „Silber“, und der Gold-Zweig wird nie erreicht. Die strengere Bedingung muss deshalb zuerst geprüft werden.

A6
for oder while?
AFB III

Vergleiche for- und while-Schleife und gib für jede eine passende Situation an.

Hinweis: Weiß man vorher, wie oft wiederholt wird?

Strategie: Unterscheide nach bekannter und unbekannter Anzahl der Runden.Warum so? Das Kriterium macht die Entscheidung nachvollziehbar.
Lösungsskizze: for: Anzahl bekannt, Array durchlaufen · while: bis Bedingung erfüllt
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: Beide wiederholen einen Block, solange eine Bedingung gilt. Die for-Schleife fasst Start, Bedingung und Schritt in einer Zeile zusammen; sie passt, wenn die Anzahl der Runden feststeht, z. B. um jedes Element eines Arrays zu besuchen. Die while-Schleife passt, wenn man die Anzahl vorher nicht kennt, z. B. „halbiere, bis der Wert unter 10 liegt“ oder „frage erneut, bis die Eingabe gültig ist“.

A7
return oder console.log?
AFB III

Jona sagt: „Meine Funktion preis(anzahl) gibt den Preis doch mit console.log aus — return brauche ich nicht.“ Nimm Stellung.

Hinweis: Was passiert, wenn man mit dem Preis weiterrechnen will?

Strategie: Unterscheide „anzeigen“ und „zurückgeben“.Warum so? Stellung nehmen heißt: abwägen und entscheiden.
Lösungsskizze: Konsole nur Anzeige · Aufruf liefert undefined · return macht weiterrechnen möglich
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: console.log zeigt den Wert nur in der Konsole an. Der Aufruf preis(3) liefert dann undefined; man kann ihn weder speichern noch addieren oder vergleichen — preis(3) + 2 ergäbe NaN. Mit return ist der Aufruf selbst der Preis und lässt sich überall weiterverwenden. Soll die Funktion mehr als eine einmalige Anzeige leisten, braucht sie also return.

A8
Ein Element oder alle?
AFB III

Erläutere den Unterschied zwischen querySelector und querySelectorAll und nenne je ein Beispiel, in dem man die Methode braucht.

Hinweis: Denke an „die Überschrift“ und „alle Preise“.

Strategie: Beschreibe das Ergebnis jeder Methode.Warum so? Beispiele zeigen, dass du den Unterschied anwenden kannst.
Lösungsskizze: erstes Element oder null · Liste mit length · Schleife
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: querySelector liefert das erste passende Element (oder null), z. B. um die eine Überschrift #titel zu ändern. querySelectorAll liefert eine Liste aller passenden Elemente; man durchläuft sie mit einer Schleife, z. B. um alle Elemente mit der Klasse preis rot zu färben. Wer nur querySelector nutzt, ändert immer nur das erste Element.

A9
Wo wohnt der Zustand?
AFB III

Erkläre, warum ein Klickzähler nur funktioniert, wenn let n = 0; außerhalb der Funktion steht, die bei jedem Klick läuft.

Hinweis: Was passiert mit einer lokalen Variablen am Ende eines Aufrufs?

Strategie: Verfolge zwei Klicks mit beiden Varianten.Warum so? Der Vergleich zeigt die Ursache.
Lösungsskizze: lokal: jedes Mal neu 0 · außerhalb: Wert bleibt erhalten
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: Steht let n = 0; in der Funktion, wird bei jedem Klick eine neue Variable mit dem Wert 0 angelegt, um 1 erhöht und am Ende des Aufrufs vergessen — die Anzeige bleibt bei 1. Steht sie außerhalb, gibt es nur eine Variable für das ganze Programm; jeder Klick erhöht ihren bisherigen Wert. Der Zustand muss den Aufruf überleben.

A10
Eingaben testen
AFB III

Ein Formular fragt das Alter ab (ganze Zahl von 1 bis 120). Entwickle fünf Testeingaben, mit denen du die Prüfung des Programms sinnvoll testest, und begründe die Auswahl.

Hinweis: Denke an Grenzen, Leereingaben und Tippfehler.

Strategie: Wähle normale Werte, Grenzwerte und ungültige Eingaben.Warum so? Gute Tests suchen gezielt die Stellen, an denen Fehler entstehen.
Lösungsskizze: „30“ · „1“ und „120“ · „0“/„121“ · „“ · „abc“/„2,5“
Musterlösung anzeigen (zählt als erledigt)

Musterlösung: Zum Beispiel: „30“ (normaler Fall, muss funktionieren), „1“ und „120“ (Grenzen, müssen noch gelten), „0“ oder „121“ (knapp außerhalb, müssen abgelehnt werden), „“ (leeres Feld, Number("") ist 0) und „abc“ oder „2,5“ (keine gültige Zahl, NaN). Grenzwerte und Leereingaben sind die typischen Stellen, an denen Prüfungen versagen.