Webdesign mit CSS, HTML und Javascript
Stil mit {stil}
Okt 2008
Die Javascript-Sprachelemente

- Obwohl wir Programmen und Anwendungen, die schon ein paar Jahre auf dem Buckel haben, schnell auch ein wenig misstrauen: Das Alter der ECMA-Spezifikation weist schon auf ein hohes Maß von Stabilität hin.
Der Sprachumfang von Javascript, so wie er in ECMA festgelegt ist, umfasst einfache und zusammengesetzte Datentypen, Variablen, Operatoren für Berechnungen und zur Manipulation von Elementen wie Strings, Anweisungen und Funktionen.
Darüber hinaus beinhaltet Javascript je nach Anwendung – Einsatz in HTML-Webseiten, in XML-Dokumenten, in Apple-Dashboard, Adobe-Air-Anwendungen, Photoshop-Plugins oder für Postscript-Anwendungen – verschiedenen Modelle für das jeweilige Dokument.
Datentypen
Javascript hat nur einen kleinen Satz von primitiven Datentypen: Boolean, Number und String und die speziellen Werte null und undefined. Alles andere sind Varianten des Typs Object.
var a = 42; // Zahlen wie 42 oder 4,98 var b = true; // Boolesche Werte: true oder false var c = "Lorem Ipsum"; // Zeichenketten undefined // z.B. Variablen, die deklariert sind, // denen aber noch kein Wert zugewiesen wurde null // ein besonderes Schlüsselwort, dass einen // Nullwert beschreibt.
Komplexe Datentypen
- Arrays
- sind geordnete Sammlungen von logisch zusammengehörigen Elementen, die mit einem einzigen Namen angesprochen werden.
- var farben = new Array("rot", "grün", "blau");
- Funktionen
- sind Datentypen in Javascript – d.h., sie können behandelt werden, als würden sie Werte enthalten, die geändert werden können.
- var total = sum(40, 2);
- Objekte
- sind Behälter für Werte und Funktionen – komplexe Datentypen, die individuell für besondere Anforderungen konstruiert werden.
- var adress = new Object();
Operatoren
Berechnen oder Vergleichen von Werten
summe + steuer
Variablen
Variablen werden in Javascript durch die var-Anweisung definiert. Variablen müssen deklariert werden, bevor sie benutzt werden können. Wenn sie innerhalb einer Funktion definiert werden, gelten mit var definierte Variablen nur innerhalb der Funktion und sind nicht von außerhalb der Funktion zugreifbar.
Anweisungen
Nahezu jede Zeile eines Scripts ist eine Anweisung. Anweisungen deklarieren und initialisieren Variablen, berechnen und ändern die Werte von Variablen, rufen Methoden und Funktionen auf und treffen Entscheidungen.
while (clicks < 10) {
Anweisung;
Anweisung;
Anweisung; Anweisung;
}
Funktionen
Funktionen sind ein Stück Code, das einmal definiert wird und im Programm mehrfach aufgerufen werden kann – Funktionen sparen aufwändige und fehlerträchtige Doppelprogrammierung und strukturieren gleichzeitig das Programm ähnlich wie die Kapitel eines Buches. Zuguterletzt verhindern Funktionen, dass Code automatisch beim Laden des Dokuments ausgeführt wird – Funktionen werden erst beim expliziten Aufruf der Funktion geladen.
function summe(x, y)
{
return x + y;
}
Ereignisse
Erst die Reaktion auf Ereignisse macht HTML-Seiten interaktiv. Der Javascript-Interpreter benachrichtigt das Skript durch Event Handler über das Eintreten von Ereignissen wie dem Klick mit der Maus, dem Herunterdrücken einer Taste auf der Tastatur oder das Absenden eines Formulars.
window.onload = firstHit;
function firstHit()
{
var myImages = document.images;
myImages[0].onclick = alert('Das erste Bild mit der Maus getroffen');
}
In der Funktion firstHit() wird ein Event Handler in Gang gesetzt, der den Klick mit der Maus auf das erste Bild der Seite meldet.
Blöcke
Blöcke von geschweiften Klammern bilden keinen „Scope“. Scope ist die Bezeichnung für eine Umgebung, innerhalb der die dort definierten Variablen gelten. Der einzige Scope in Javascript wird durch Funktionen gebildet.
Konstante
Mit dem Schlüsselwort const werden Konstanten definiert, die im Programm nur gelesen, nicht aber verändert werden können.
const mwst = 16;
Literale
Literale stellen Werte dar, im Gegensatz zu Variablen allerdings feste Werte, die dem Script sozusagen wörtlich übergeben werden.
- Array-Literal
var farben = ["rot", "grün", "blau"]; - Boolean-Literal
var isIn = trueundvar isIn = false - Floating-Point Literal
var pi = 3.1415 - Integer-Literal
var antwort = 42 - Objekt-Literal
var adress = { name: "Hansen", ort: "Bonn", plz: 4711 } - String-Literal
var lamm = "bähbäh";
Objekte
Javascript ist eine objektorientierte Programmiersprache. Der Schlüssel zu einem schnellen Verständnis von Javascript liegt in der Struktur seiner Objekte. Javascript enthält nur wenige Funktionen, die nicht Teil eines Objekts sind. Objekte besthen aus
- Methoden (Funktionen)
- Eigenschaften (Daten oder andere Objekte)
- Ereignisse, die an ein Objekt gebunden sind
Objekte realisieren einfache Datenstrukturen wie Strings und komplexe Datenstrukturen – z.B. ein Adressbuch mit hoher Funktionalität.
var myObject = { firstName: "Ulrike", lastName: "Häßler", city: "Vluyn" };
Javascript kann auf eine große Anzahl von eingebauten Objekten zurückgreifen, die Charakteristika des Webdokuments darstellen. Das wichtigste Objekt ist das DOM, das Document Object Model.
Das globale Objekt ist der Hüter aller Funktionen und Variablen, die nicht innerhalb anderer Funktionen und Objekte definiert wurden. Das globale Objekt hat keinen expliziten Namen.
Liste der reservierten Wörter
Die meisten reservierten Wörter werden in JavaScript überhaupt nicht benutzt. Reservierte Wörter können nicht
- als Name in einer literalen Objekt-Notation
- als Name eines Mitglieds in einer dot-Notation
- als Argument einer Funktion
- als Variable
- als unqualifizierte globale Variable
- als Sprungmarke
benutzt werden
| abstract boolean break byte case catch char class const continue debugger default delete do double |
else enum export extends false final finally float for function goto if implements import in |
instanceof int interface long native new null package private protected public return short static super |
switch synchronized this throw throws transient true try typeof var void volatile while with |