Javascript Variable

Eine Variable wird mit let oder const deklariert und ist der Speicher oder Platzhalter für Daten wie Zahlen, Strings oder Arrays, deren Wert sich während der Ausführung des Scripts ändern kann. Eine Javascript-Variable hat einen Namen, einen Typ und einen Wert.

Javascript Variablen

const und let – Variable deklarieren und Initialisieren

Die Schlüsselwörter const und let erzeugen Konstanten bzw. Variablen in Javascript. Die »Deklaration« ist das Bekanntmachen der Variablen. Das Zuweisen des Werts ist die »Initialisierung« der Variablen.

let x;	// Deklaration
x = 42;	// Initialisierung
x = 12; // Neuer Inhalt – Wert ändern

Einer Javascript-Variablen, die mit let deklariert wurde, wird entweder direkt bei der Deklaration oder später im Laufe des Programms ein Anfangswert zugewiesen. Bis zur Zuweisung eines Werts (der Initialisierung) hat die Variable den Wert undefined.

Variablen, die mit const deklariert werden, sind unveränderlich – konstant. Ihnen muss sofort ein Wert zugewiesen werden, denn sie können im Verlauf des Programms nicht geändert werden.

const PI = 3.14;
const arr = [17, 22, 5];
arr[1] = 18;

Die unveränderliche Variable arr ist eine Referenz oder Verweis auf ein Array. Eine erneute Initialisierung würde sofort zu einem Syntaxfehler führen.

const arr = [17, 18, 5]; // SyntaxError: Cannot declare a const variable twice: 'arr'.

Scope – der Gültigkeitsbereich von Variablen

Variablen gelten nicht innerhalb des gesamten Scripts, sondern nur innerhalb ihres umschließenden Blocks mit { und } – z.B. innerhalb von Bedingungen und Schleifen. Man kann den Wert der Variablen ändern, aber keine Variable gleichen Namens im gleichen Block deklarieren. Das gilt sowohl für Variablen, die mit let also auch für Variablen, die mit const deklariert wurden.

function foo() {
	let msg = "Hallo Welt";
	…
}

let msg = 404;

Außerhalb des Blocks { } kann einer Variablen, die mit let deklariert wurde, ein anderer Wert – selbst von einem anderen Typ – zugewiesen werden. Das wäre keine gute Programmierpraxis, aber durchaus legal.

Innerhalb eines Blocks sind Variablen geschützt. Das reduziert Fehlerquellen, da Variablen einen überschaubaren Scope (Gültigkeitsbereich) haben.

const – Konstante

Korrekt gesehen ist eine Konstante keine Variable, denn eine Variable stehen für einen Speicherplatz, dessen Wert sich ändern kann. Konstante hingegen stehen für einen Speicherplatz, dessen Wert nach der Initialisierung nicht geändert werden kann.

Einer Konstanten muss also bei der Deklaration sofort ein Wert zugewiesen werden, denn nach der Deklaration kann einer Konstanten kein neuer Wert zugewiesen werden.

Eine Variable mit const ist genauso wie let auf ihre Block-Umgebung oder Block-Scope eingeschränkt.

const arr = ["Blau", "Rost", "Grün"];
arr.push("Lila");

Die individuellen Werte von Arrays und Objekten, die als const angelegt werden, können geändert werden, Integer, Boolean und String hingegen nicht.

Das Schöne an const: Weil einer Variablen, die mit const vereinbart wurde, kein neuer Wert zugewiesen werden kann, gibt es weniger Nebeneffekte.

Schreibweisen für Variablen

In einer Definition können auch mehrere Variablen vereinbart werden – sie werden in Javascript einfach durch Kommas voneinander getrennt.

let name, adresse, hausnr;

name = "Weihnachtsmann";
adresse = "Winterwald";
hausnr = 24;

Allerdings ist die ausführliche Schreibweise besser, denn sie lässt sich besser kommentieren und ist besser lesbar:

let name    = "Weihnachtsmann";	// Name
let adresse = "Winterwald"; 	// Adresse
let hausnr  = 24;           	// Hausnummer

Globale Variablen

Variablen in Javascript können ausdrücklich durch let, const oder implizit (ohne const oder let) – einfach durch die Zuweisung eines Anfangswerts vereinbart werden. Die einfache Zuweisung definiert eine globale Variable.

let name = "Weihnachtsmann";	// explizit durch Schlüsselwort let
adresse = "Alaska"; 			// implizit durch Wertzuweisung

Globale Variablen gelten im gesamten Script. Jetzt klingt es zwar praktisch, dass die globale Variable im ganzen Script gilt – ist aber ausgesprochen gefährlich. Gerade einfache Variablennamen wie i, wert und x werden schnell auch an anderen Stellen des Scripts benutzt und überschreiben sich dann gegenseitig. Sobald Scripte von Dritten eingebunden werden, wären globale Variablen ein Wespennest.

Gute Programmierpraxis – Konventionen

Darum ist die ausdrückliche Deklaration mit let oder const die bessere Technik, während die implizite Vereinbarung einer Variablen als schlechte Programmierpraxis gilt.

Wird modernes Javascript im Strict Modus – strict-mode programmiert, entsteht sofort eine Fehlermeldung, wenn Variablen nicht definiert werden.

"use strict";
let name = "Meier";
if (vorname === "Ludwig") { // ReferenceError: Can't find variable: vorname
   console.log ("Hierhin kommt das Script nicht mehr");
}

Gute Variablennamen

Javascript-Variablennamen

  • bestehen aus Buchstaben (wobei auch ein Unterstrich "_" als Buchstabe zählt),
  • aus Ziffern,
  • dürfen keine Leerzeichen und Bindestriche enthalten,
  • dürfen nicht mit einer Zahl, einem Sonderzeichen oder Satzzeichen anfangen,
  • dürfen nicht mit einem Schlüsselwort übereinstimmen.

Zu den Programmierkonventionen für Javascript gehört der Camel Case oder camelCase. Gut lesbare Variablennamen, die aus zwei Wörtern zusammengesetzt sind beginnen mit einem kleingeschriebenen Wort, der Bindestrich fällt weg, das nächste Wort beginnt mit einem Großbuchstaben: maxHeight statt max-height.

Das erste Zeichen muss ein Buchstabe oder ein Unterstrich sein. Javascript ist zwar eine schwach typisierte Sprache, aber in Hinsicht auf die korrekte Schreibweise kennt Javascript keine Gnade.

Variablennamen sind case sensitive (Javascript achtet streng auf Groß- und Kleinschreibung), d.h., dass Name, name und NAme drei verschiedene Namen sind.

Korrekte Variablennamen Nicht korrekt Was ist falsch?
name1 10names Variablen müssen mit einem Buchstaben oder einem Unterstrich beginnen
price_tag box.front Der Punkt im Variablennamen ist nicht zulässig
_abc name#last Das „#“-Zeichen ist nicht zulässig
Abc_22 A-23 Das „-“-Zeichen – der Bindestrich – ist nicht zulässig
A23 5 Variablennamen müssen mit einem Buchstaben oder einem Unterstrich beginnen
var Übermut = 4;
var Π = Math.PI;
var ❿ = "Zehn"; Π ist ein valider Variablennamen, Übermut ebenfalls: Javascript steht auf Unicode. Aber ❿ führt zu einem Syntaxfehler.

Illegale oder falsche Variablennamen erzeugen eine Fehlermeldung und verhindern die Ausführung des Programms.

const 10names = "10 Namen";		No identifiers allowed directly after numeric literal							Uncaught SyntaxError: Invalid or unexpected token

Variablen und Datentypen

In Programmiersprachen wie C++ und Java muss der Typ der Variablen deklariert werden. Um eine Variable zum Speichern ganzzahliger Werte zu vereinbaren, muss der Typ explizit deklariert werden:

int num = 5;   oder    float fnum = 44.5;

Wenn eine Programmiersprache bei der Vereinbarung der Variablen den Datentyp erzwingt, wird sie als streng typisiert bezeichnet. Javascript hingegen ist eine dynamische oder locker typisierte Sprache, denn der Typ einer Variablen wird nicht ausdrücklich vereinbart:

let num = 5;
let fnum = 44.5;

Javascript verlangt keine Typangabe bei der Deklaration, sondern findet selber heraus, welcher Datentyp in num und fnum gespeichert wird. Wir dürfen einer Variablen zunächst einen String zuweisen und später einen numerischen Wert. Bei der Ausführung des Programms wird der Javascript-Interpreter die Daten in den korrekten Typ konvertieren. In jeder der folgenden Anweisungen wird Javascript den Typ der Variablen konvertieren:

AnweisungKonvertierung
let item = 5.5;Zuweisung eines Fließkommawerts
item = 44;Konvertierung in Integer
item = "Egon M.";Konvertierung in String
item = true;Konvertierung in Boolean
item = null;Konvertierung in null-Wert

Allerdings gilt die Zuweisung eines anderen Datentyps als schlechte Programmierpraxis.

Suchen auf mediaevent.de