Zum Inhalt springen

Variablen

Anders als in vielen Programmiersprachen wird in JavaScript beim Deklarieren einer
Variablen der Datentyp nicht explizit angegeben. Es wird lediglich angegeben, ob es
sich um eine Variable oder Konstante handeln soll. JavaScript ermittelt den Typ einer
Variablen zur Laufzeit, je nachdem, was für ein Wert ihr zugewiesen ist. Das bedeutet
im Umkehrschluss, dass es in JavaScript durchaus möglich ist, im Programmablauf
den Typ einer Variablen zu ändern.

Das festlegen einer Variable (=Deklaration) erfolgt über let Die Zuordung eines Wertes (=Initialisierung) erfolgt über das IstGleichZeichen (=)

let variablennamen;

Javascript ist Case-sensitiv. Wert oder wert oder WERT sind unterschiedliche Variablen.

Einfache Beispiele:

"use strict";
let stadt="Berlin ";
let alter=45;
console.log("Schöne Stadt:", stadt);
console.log("Gutes Alter:", alter);

Hinweis: vor längerer Zeit wurde für die Definition von Variablen der Begriff var verwendet. Dies bitte nicht mehr nutzen. Es gibt Probleme durch das Hoisting

Mehrere Variablen können durch ein Komma getrennt aufgelistet werden:

let variable1, variable2, variable3 

Auf eine Variable kann durch den Aufruf dieser zugegriffen werden.

Wenn der Wert einer Variablen verändert werden soll darf der Name der Variable nicht identisch sein.

"use strict";
let stadt="Berlin ";
let stadt="Kiel";

Bei diesem Versuch kommt ein Fehler: Uncaught SyntaxError: redeclaration of let stadt
Um den Wert der Variablen zu ändern muss das let weggelassen werden.

"use strict";
let stadt="Berlin ";
stadt="Kiel";
console.log (stadt);

Wenn sich der Wert einer Angabe nicht ändert (wie zum Beispiel das mathematishe PI oder der Geburtstag eines Menschen kann const verwendet werden. Dadurch wird eine Konstante festgelegt.

  • const legt eine Konstante an, die anfangs an einen Wert gebunden wird, welcher später nicht verändert werden kann (immutable = unveränderbar) .
  • let legt eine Variable im aktuellen Gültigkeitsbereich an, die nicht gleich deklariert werden muss. Für diesen Fall erhält sie den Wert undefined.


Lokale und globale Variablen

Es ergeben sich Unterschiede, je nach dem wo man Variablen
deklariert : innerhalb Funktionen oder Prozeduren oder außerhalb, im Modulkontext

Reservierung des Speicherplatzes
• globale Variablen werden statisch angelegt (einmal für
Programmablauf) und ist überall verfügbar
• lokale Variablen werden für jeden Methodenaufruf eigens
angelegt und sind nur dort verfügbar.
Bsp:

let variable1 = ("Hier ist die Variable im globalen Gültigkeitsbereich festgelegt");

function localer_gueltigkeitsbereich()
        {
        let variable2=("Hier ist die Variable im lokalen Gültigkeitsbereich");
        }
console.log (variable1);
console.log (variable2);

Wenn wir hier versuchen die variable2 aufzurufen bekommen wir den Fehler

ReferenceError: variable2 is not defined
at Object. (/home/michi/js/gueltigkeitsbereich.js:8:14)


Und ds liegt daran das die Variable in einer Funktion festgelegt ist und nur dort gültig ist.

Datentypen ermitteln

Durch den Befehl typeof kann der Datentyp einer Variablen erfragt werden. Hier wird der Befehl document.write verwendet mit dem die Ausgabe direkt in das Browserfenster übertragen wird.

<html>
    <body>
        <script>
            "use strict";
            let ganzeZahl=3;
            let kommazahl=2.44;
            let buchstabe="c";
            let wort="Hallo";
            let wahrheitswert=true;
            let ohneInitialisierung;
            document.write("ganzeZahl"+"<br>"+typeof ganzeZahl + "<br>");
            document.write("kommazahl"+"<br>"+typeof kommazahl + "<br>");
            document.write("buchstabe"+"<br>"+typeof buchstabe+"<br>");
            document.write("wort"+"<br>"+typeof wort+"<br>");
            document.write("wahrheitswert"+"<br>"+typeof wahrheitswert+"<br>");
            document.write("ohneInitialisierung"+"<br>"+typeof ohneInitialisierung+"<br>");
        </script>
    </body>
</html>

Es erscheint folgende Ausgabe:

Der Datentyp hat Auswirkungen auf Ergebnisse einer Ausgabe. So werden Strings durch ein + mit einander verbunden aber Ziffern mit dem + verbunden ergibt die Summe.

Eine Ausgabe erstellen

Durch den Befehl prompt kann ein Pop-Up Fenster erstellt werden

"use strict";
prompt ("Wie ist dein Name?");

Will man die Eingabe des Users verarbeiten wird vor dem prompt eine Variable festgelegt:

let name=prompt ("Wie ist dein Name?");

Der prompt Befehl speichert die Variable immer als String ab. Wenn man die Eingabe eines Users als Zahl verwenden will ist eine Umwandlung in einen Number Datentyp erforderlich.

Wichtig ist das der Datentyp immer groß geschrieben werden muss. Wenn der Anwender keine Zahl sondern einen anderen Wert eingibt erscheint die Meldung „NaN“ = Not a Number und zeigt eben an das eine Umwandlung nicht möglich ist.

Operatoren mit Variablen

NameAbgekürzter OperatorAusgeschriebener Operator
Zuweisungx = yx = y
Additionx += yx = x + y
Subraktionx -= yx = x - y
Multiplikationx *= yx = x * y
Divisionx /= yx = x / y
Modulo (Division mit Rest)x %= yx = x % y
Exponentiation assignmentx **= yx = x ** y
Left shift assignmentx <<= yx = x << y
Right shift assignmentx >>= yx = x >> y
Unsigned right shift assignmentx >>>= yx = x >>> y
Bitwise AND assignmentx &= yx = x & y
Bitwise XOR assignmentx ^= yx = x ^ y
Bitwise OR assignmentx |= yx = x | y

weiter zu Bedingungen