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
undnull
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()