Im internen Definitionsbereich deklarieren sie neben einfachen Variablen auch komplexe Datenstrukturen wie Arrays oder Objekte.
Komplexere Datenstrukturen kennen sie aus der Realität vor allem als Listen und Tabellen. Aber auch alle Strukturen wie Listen mit Unterpunkten können als Daten benutzt werden. Alle diese Konstrukte können sie in JS mit Arrays und Objekten nachbilden.
Datenstrukturen (komplexe Variablen) sind in JS vor allen verschiedene Array-Typen aber auch Objektklassen.
Arrays können sie sich wie durchnumerierte Schubfächer vorstellen, in denen sie Werte gleichen Typs (Zahl, Zeichenkette) ablegen können.
Schubfach | Inhalt |
---|---|
1 | "Montag" |
2 | "Dienstag" |
3 | "Mittwoch" |
4 | "Donnerstag" |
5 | "Freitag" |
6 | "Samstag" |
7 | "Sonntag" |
In JS schreibt man das dann wie folgt:
var tage = new Array ("Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag");
Allerdings beginnt die automatische Numerierung (der Schubfächer) bei Null und nicht bei Eins. Der Zugriff auf ein Schubfach erfolgt mit tage[Schubfachnumer].
tage[3] → "Donnerstag"
Sie können allerdings Arrays nur über die Elementeanzahl (Bespiel → 10) auch ohne Angabe konkreter Elemente mit
var tage = new Array (10);
deklarieren oder sogar ganz ohne Anzahl mit
var tage = new Array ();
Mehrdimensionale Arrays erzeugen wir, in dem wir einen normalen Array-Element wieder ein Array zuweisen (allerdings meist in einer Schleife):
var Dim1 = new Array (4);
Dim1[0] = new Array (3);
Dim1[1] = new Array (3);
Dim1[2] = new Array (3);
Dim1[3] = new Array (3);
In diesem Fall haben wir also die Schubladen der Spalte 0-3 und der Reihe 0-2.
0 / 0 | 1 / 0 | 2 / 0 | 3 / 0 |
0 / 0 | 1 / 1 | 2 / 1 | 3 / 1 |
0 / 0 | 1 / 2 | 2 / 2 | 3 / 2 |
Der Zugriff erfolg dann mit a[x][y]
Anmerkung: Wenn sie jetzt an Excel und seine Organisation in Zellen denken, liegen sie sicherlich nicht verkehrt.
In normalen Arrays greifen sie auf die Elemente mit einen Zahlenindex (auch Schlüssel genannt) zu. So ein Schlüssel muss allerdings nicht unbedingt eine Zahl sein, sondern kann auch eine Zeichenkette sein. Dann spricht man vom assoziativen Array.
Da allerdings JS assoziative Arrays nur als Sonderform des Objekts benutzen kann, werden wir diese dort besprochen.
Objektklassen (auch Objekttypen oder einfach nur Klassen genannt) sind die Definitionen von Objekten (auch (Objekt-)Instanzen). Die Objektorientierte Programmierung (OOP) versucht das Konzept eines Objektes der realen Welt in die Welt der Informatik zu übertragen.
Objektorientierung umfaßt:
function Klassenname() {
this.Attribut = "Wert";
this.Methode = MethodenFunktion;
}
function MethodenFunktion(Parameter1) {
Anweisungsblock;
}
var Objekt = new Klassenname();
Da Objekte mit ihren Methoden sich wie Funktionen verhalten, besprechen ich sie ausführlich weiter unten im „Ablauf“.