Variablen und Konstanten
Dauer: 25 Minuten
- Variablen
- Konstanten
Ziel: Werte mit Namen versehen und verwenden
Bei der Vorführung in replit.com ggf. einen Invite-Link mit dem Kurs teilen, damit Interessierte sich den Code kopieren können.
Variablen
Variablen helfen, in Programmen relevante „Werte“ wie z.B. bestimmte Zahlen oder „Zwischenergebnisse“ (z.B. von Berechnungen) mit Namen bzw. Bezeichnern auszustatten, sodass diese leicht wiederverwendet werden können.
Variablen werden mit dem Schlüsselwort let
gefolgt von einem
Name/Bezeichner deklariert:
// Deklaration von Variablen (noch ohne Wert/„Inhalt“)
let myVariable;
let variable2;
Werden mehrere Variablen direkt nacheinander deklariert, so
lassen sich diese auf einer Zeile mit ,
getrennt
auflisten:
// Dies entspricht der vorigen Deklaration (s.o.)
let myVariable, variable2;
Mit einer Zuweisung erhält die Variable einen Wert. Nachfolgende Zuweisungen ändern den aktuellen Wert in der Variablen.
// myVariable ist der Name/Bezeichner der Variablen
// die Variable mit dem Namen myVariable wurde zuvor deklariert (s.o.)
// es folgt eine erste Zuweisung
myVariable = 1; // Wert der Variablen ist 1
// hier steht vielleicht eine ganz andere Berechnung...
// der Variablen wird ein neuer Wert zugewiesen
myVariable = 24; // Wert der Variablen ist nun 24
// Zuweisung der Variablen variable2
variable2 = "Hi!"; // Variablenwert ist der Text/String "Hi!"
Variablen haben einen Namen/Bezeichner, der nur einmal im
Gültigkeitsbereich der Variablen durch die Deklaration
vergeben werden darf. Für Variablen ist der Gültigkeitsbereich oft die
umgebende Funktion, eine Schleife (for
oder while
) oder Verzweigung
(if/else
) — diese werden später behandelt. Variablen dürfen nur
einmal in ihrem Gültigkeitsbereich deklariert werden. Der Gültigkeitsbereich
wird durch umgebende geschweifte Klammern mit einer „öffnenden“ Klammer
{
am Anfang und einer „schließenden“ Klammer }
am Ende festgelegt.
Reservierte Schlüsselwörter sind das „Vokabular“
einer Programmiersprache, die nicht für Bezeichner
verwendet werden dürfen (z.B. let
, function
, class
, usw.).
let class = "Schulkasse 8a"; // Fehler!
// SyntaxError bei der Ausführung (zur Laufzeit)
// --> Uncaught SyntaxError: unexpected token: keyword 'class'
Mehr zu möglichen Bezeichnern folgt weiter unten.
Die beiden Anweisungen zur Deklaration und der ersten Zuweisung eines Wertes an die Variablen lassen sich in eine Anweisung zusammenfassen. Dann sprechen wir von einer Initialisierung:
// Initialisierung: Deklaration und erste Zuweisung kombiniert
let myVariable = 1;
// hier steht vielleicht eine ganz andere Berechnung...
// neuer Wert wird zugewiesen
myVariable = 24;
// FEHLER!
// Variable darf nur einmal im
// Gültigkeitsbereich deklariert werden!
let myVariable = 25;
Mehrere Initialisierungen können ähnlich wie Deklarationen durch Komma getrennt zusammengefasst werden:
let myVariable = 24, variable2 = "Hi!";
Mit der Methode console.log()
können wir uns den Inhalt bzw. aktuellen
Wert einer Variablen ausgeben lassen:
console.log(myVariable); // ergibt 24
myVariable = 12;
console.log(myVariable); // ergibt 12
Die Werte von Variablen sind sozusagen „zwischengespeichert“ und deshalb werden sie meistens mehrmals verwendet. Zum Beispiel kann der aktuelle Variablenwert auch in einer erneuten Zuweisung an dieselbe Variable genutzt werden.
let luckyNumber = 108; // Initialisierung
console.log(luckyNumber);
// Variablen können sich ändern - daher ihr Name
luckyNumber = 123; // neue Zuweisung
luckyNumber = luckyNumber + 7; // neue Zuweisung mit vorigem Wert
console.log(luckyNumber);
// Fehler zur Laufzeit, wenn nicht bekannte Variablen
// verwendet werden
console.log(thisVariableDoesNotExist); // ReferenceError
Konstanten
Konstanten sind vereinfacht gesagt „Variablen, die sich nicht ändern können“ — es darf also später keine neue Zuweisung erfolgen. Dadurch können wir „feste“ oder „unveränderliche“ Werte mit einem Namen/Bezeichner erhalten.
Konstanten werden mit dem Schlüsselwort const
deklariert.
Konstanten müssen direkt bei der Deklaration mit einem Wert initialisiert werden, der danach im weiteren Verlauf des Programms unveränderlich (konstant) ist.
const answer = 42;
const unknownName = "John Doe";
// Fehler: Konstanten können nicht geändert werden!
answer = 23; // --> würde Fehler ergeben
// Fehler: Konstanten ohne Wert deklarieren
const notAllowed;
Es gibt in JavaScript auch die Möglichkeit, Variablen mit var
zu deklarieren.
Davon wird inzwischen abgeraten — auch wenn dies noch
immer möglich ist und oftmals keine Probleme verursacht.
Mehr Infos dazu sind unter javascript.info/var zu finden.
Bezeichner und Namen
Neben Variablen erstellen wir in JavaScript u.a. auch eigene Funktionen und Klassen, denen wir passende Namen geben.
Solche Namen werden auch Bezeichner genannt. Sie enthalten keine Leerzeichen.
Bezeichner können aus folgenden Elementen bestehen (d.h. mit diesen können wir passende Namen zusammensetzen):
a,b,c, …,x,y,z,A,B,C, …,X,Y,Z
(alle Buchstaben des Alphabets)0,1,2,3, …,9
(Ziffern von 0 bis 9)_
(Unterstrich)$
(Dollarzeichen)
Bezeichner dürfen nicht mit einer Ziffer beginnen.
Zwischen Groß- und Kleinschreibung wird unterschieden (JavaScript
ist also case sensitive). Also sind die Bezeichner Hallo
und hallo
verschieden und können für zwei unterschiedliche
Variablen verwendet werden.
Schlüsselwörter dürfen nicht als Bezeichner verwendet werden.
Beispiele gültiger Bezeichner:
Mein_Name
_ein_Bezeichner
Name_$123
Beispiele nicht zulässiger Bezeichner:
1Name
Gibt's-nicht
class
Variablennamen werden in JavaScript in der Regel in sogenannter CamelCase-Form formuliert, d.h. die Bezeichner beginnen mit einem kleinen Buchstaben und Teilbezeichnungen im Namen beginnen mit einem Großbuchstaben:
// Variablennamen in Camel Case
let theAnswer = 42;
let firstName = "Alice";
let anotherLongVariableName = "something";
Schlüsselwörter
In Programmiersprachen haben bestimmte „Vokabeln“ eine vordefinierte Bedeutung und dürfen nicht als Bezeichner verwendet werden. Deshalb nennt man diese (reservierte) Schlüsselwörter.
In JavaScript sind dies u.a. die folgenden:
break case catch class continue default do
else export extends for function if new
return static super switch this try while
…
Wir lernen deren Bedeutung zum Teil später kennen.
Ausdrücke
Auf der „rechten Seite“ einer Zuweisung steht ein gültiger JavaScript-Ausdruck (expression).
Ausdrücke können einfache Werte der Variablen/Konstanten sein
wie z.B. Zahlen (123
) oder Text bzw. Strings ("Hello, World!"
).
Solche Werte, die direkt „hingeschrieben“ werden, werden
manchmal „Literale“ genannt (von engl. literal — wörtlich).
Ausdrücke können aber auch durch komplexere Operatoren oder Rückgabewerte von Funktionsaufrufen hervorgehen (siehe später).
let x = 123.4;
let y = (2 + 5) * 12;
let z = "example";
// Hier verwenden wir die Methode Math.random()
// JavaScript enthält viele Hilfsklassen und Methoden,
// mit denen wir viele Aufgaben direkt lösen können
let number = Math.random();
Ausdrücken begegnen wir auch später im Zusammenhang mit Bedingungen in Fallunterscheidungen und Schleifen wieder.
Einerseits ist ein Ausdruck z.B. etwas „kleines“ oder
atomares wie die Zahl 8
und andererseits können mehrere
Ausdrücke miteinander kombiniert komplexere Ausdrücke
ergeben wie z.B. 8 + 9
oder (Math.random() + 8 - 4)
usw.
Dies alles wird durch die formale Grammatik einer
Programmiersprache festgelegt. In der praktischen
Programmierung wird die Grammatik im Prinzip durch die
konkrete Erfahrung und Übung erlernt.
Zusammenfassung und Links
Zusammenfassung der wichtigsten Punkte
- Variablen
- werden mit
let
und einem Namen/Bezeichner deklariert - können mit oder ohne Wert deklariert werden
- können beliebig oft neue Werte zugewiesen bekommen (sind also „variabel“)
- werden mit
- Konstanten
- werden mit
const
und einem Namen/Bezeichner eingeführt - müssen bei der Deklaration mit einem Wert initialisiert werden
- können nach der Initialisierung keinen neuen Wert zugewiesen bekommen (sind also „konstant“)
- werden mit
- Variablen und Konstanten
- haben einen eindeutigen Namen/Bezeichner im Gültigkeitsbereich
- werden nur einmal im Gültigkeitsbereich deklariert
- Namen/Bezeichner beginnen mit Buchstaben
- Namen/Bezeichner bestehen aus Ziffern, Buchstaben,
$
,_
- Namen/Bezeichner dürfen keine Leerzeichen enthalten
- Namen/Bezeichner dürfen keine Sonderzeichen außer
$
und_
enthalten - Namen/Bezeichner dürfen keine reservierte Schlüsselwörter sein
- Variablenwerte können durch Ausdrücke festgelegt werden
- Fast alle Konzepte, die wir noch lernen werden, lassen sich auf verschiedene Weisen zu beliebig komplexen Ausdrücken kombinieren (Operatoren, Funktionsaufrufe, usw.)
Links mit ausführlicheren Informationen zum Thema