Читать книгу JavaScript für Ungeduldige - Cay Horstmann - Страница 95
2.13Übungen
Оглавление1 Browserkonsolen und die REPL von Node.js zeigen Werte an, wenn Sie Anweisungen eingeben. Welche Werte werden bei den folgenden Anweisungen ausgegeben?AusdrucksanweisungenVariablendeklarationenBlockanweisungen mit mindestens einer AnweisungLeere Blockanweisungenwhile-, do- oder for-Schleifen, deren Rumpf mindestens einmal ausgeführt wirdSchleifen, deren Rumpf nie ausgeführt wirdif-Anweisungentry-Anweisungen, die regulär beendet werdentry-Anweisungen, deren catch-Klausel ausgeführt wird
2 Was ist bei der folgenden Anweisung falsch?if (x === 0) console.log('zero') else console.log('nonzero')Wie lösen Sie das Problem?
3 Gegeben sei die folgende Anweisung:let x = aWelche Token am Anfang der nächsten Zeile können verhindern, dass ein Semikolon ergänzt wird? Welche können in einem Programm realistischerweise vorkommen?
4 Was ergeben Vergleiche von undefined, null, 0 und '' mit den Operatoren <, <= und ==? Warum ist das so?
5 Ist a || b unabhängig vom Typ von a und b immer dasselbe wie a ? a : b? Warum oder warum nicht? Geht das auch mit a && b?
6 Verwenden Sie die drei Arten von for-Schleifen, um den größten Wert in einem Array aus Zahlen zu finden!
7 Betrachten Sie folgenden Code:let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]for (i in arr) { if (i + 1 === 10) console.log(a[i]) }Warum wird hierbei nichts ausgegeben?
8 Schreiben Sie eine switch-Anweisung, die die Ziffern 0 bis 9 in ihre englischen Bezeichnungen 'zero' bis 'nine' umwandelt. Wie können Sie dasselbe auch ganz einfach ohne switch erledigen? Wie sieht es mit der Rückverwandlung aus?
9 Sei n eine Zahl zwischen 0 und 7. Setzen Sie die Array-Elemente arr[k] bis arr[k + n - 1] auf 0. Verwenden Sie dazu eine switch-Anweisung mit Durchlauf.
10 Schreiben Sie die do-Schleife aus Abschnitt 2.9 »while- und do-Schleifen« als while-Schleife um.
11 Schreiben Sie alle for-Schleifen aus Abschnitt 2.10 »for-Schleifen« als while-Schleifen um.
12 Schreiben Sie das Beispiel mit der break-Anweisung mit Label aus Abschnitt 2.11 »break und continue« mit zwei verschachtelten for-Schleifen um.
13 Schreiben Sie das Beispiel mit der break-Anweisung mit Label aus Abschnitt 2.11 »break und continue« ohne break um. Verwenden Sie eine boolesche Variable, um das Beenden der verschachtelten Schleifen zu steuern.
14 Schreiben Sie das Beispiel mit der continue-Anweisung aus Abschnitt 2.11 »break und continue« ohne break um.
15 Schreiben Sie Code, um die erste Position zu finden, an der ein Array b als Teilfolge in einem Array a vorkommt. Schreiben Sie dazu zwei verschachtelte Schleifen:let result = undefinedfor (let i = 0; i < a.length - b.length; i++) {for (let j = 0; j < b.length; j++) {if (a[i + j] != b[j]) ...}...}Vervollständigen Sie den Code mit break- und continue-Anweisungen mit Label. Schreiben Sie ihn dann ohne break und continue um.