====== Variablen in JavaScript ====== Variablen in JavaScript sollten immer mit **let** definiert werden und sind dann nur in dem Block gültig, wo sie definiert wurden. Ohne Definition mit **let** sind die Variablen immer global, was bei grösseren Programmen zu Problemen führen kann. Wenn wir später mit JavaScript-Modulen arbeiten werden, ist die Defintion mit **let** (oder **var**) Pflicht. ===== Daten-Typen ===== JavaScript kennt u.a. folgende Datentypen: * Zahlen (immer Kommazahlen). * Strings (Zeichenketten) * Arrays (Listen) * Objects (mehr dazu später). * Weitere wie ''true''/''false'', ''undefined'' und ''null'' Der Typ einer Variable ist nicht festgelegt und kann ändern. Was erst mal praktisch ist, kann aber auch zu Problemen führen. Testen Sie dazu folgende Ausdrücke auf der Konsole im Browser: 4+2 "4"+2 Number("4")+2 "4"-2 "abc"+"efg" "abc"-2 "4"-(-"3") 1/0 ==== Resultat einer Addition + ==== Sind beide Operanden Zahlen, ist das Resultat eine Zahl. Ist einer der Operanden ein String, ist das Resultat ebenfalls ein String (den man erhält, wenn die beiden zu String konvertierten Operanden aneinanderhängt). ===== Quadratische Gleichung ===== Schreiben Sie ein JavaScript-Programm (Sie können auch einfach das Programm in ''hello.js'' ersetzen), das quadratische Gleichungen der folgenden Form löst: \[ a x^2 + b x + c = 0 \qquad \text{mit $a$, $b$, $c$ $\in \mathbb{R}$ und $a \neq 0$} \] Die Lösungsformel ist: \[ x_{1,2} = \frac{-b \pm \sqrt{b^2-4ac}}{2a} \] In JavaScript kann z.B. die Wurzel aus 2 mit ''Math.sqrt(2)'' berechnet werden. Ihr Programm soll wie folgt aussehen: let a = 2; let b = 4; let c = -1; let x1 = ....; let x2 = ....; console.log(`x_1 = ${x1}`); console.log(`x_1 = ${x1}`); Testen Sie Ihr Programm mit verschiedenen Werten von a,b,c. Geben Sie mit einem ''console.log(...)'' auch noch die Gleichung aus. ==== Verbesserungen ==== Berechnen Sie erst die Diskriminante $d$ (den Ausdruck unter der Wurzel). Bauen Sie dann folgende Verzweigung ein: if (d<0) { console.log("Keine reelle Lösung"); } else { // // Lösungen berechnen und ausgeben // } ===== Strings (Zeichenketten) ===== Probieren Sie folgende Dinge in der Konsole aus: a = "hello" b = "world" a + b a + " " + b a[0] a[1] a.length b b += "!" b b.substr(2) b.substr(2,2) b.substr(-2) b.indexOf("l") b.indexOf("k") c = b.toUpperCase() c.toLowerCase()