Die Javascript-Sprachelemente

if then else while do try catch case switch function() undefined typeof false false continue

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.

Obwohl wir Anwendungen, die ein paar Jahre auf dem Buckel haben, schnell misstrauen: Das Alter der ECMA-Spezifikation weist auf eine hohe Stabilität hin.

Ecma.png Darüber hinaus beinhaltet Javascript je nach Anwendung – Einsatz in HTML-Webseiten, in XML-Dokumenten, eBooks, 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

Javascript Arrays
sind geordnete Sammlungen von logisch zusammengehörigen Elementen, die mit einem einzigen Namen angesprochen werden.
var farben = new Array("rot", "grün", "blau");
Javascript 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);
Javascript 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 = true und var 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: "Monika", lastName: "Schulze", city: "Neudorf" };

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