Javascript II

Werbung
Einführung in JavaScript II
Musikwissenschaftliches
Institut Hamburg
WS 2005/06
Klaus Frieler
JavaScript II
Verzweigungen (if-else)




Wichtiges Element einer jeden Programmiersprache ist die
bedingte Ausführung von Anweisungen, d.h. Verweigungen.
Syntax:
if (<bedingung>)
<anweisungen1>
[else
<anweisungen2>]
<bedingung> ist ein beliebiger logischer Ausdruck (in runden
Klammern) und <anweisungen1/2> eine Anweisung oder ein
Anweisungsblock in geschweiften Klammern. Anweisungen können
auch wieder Verzweigungen sein. Der else -Zweig ist optional.
Semantik: Ist die Bedingung wahr wird <anweisungen1>
ausgeführt, falls nicht wird entweder nichts getan oder der
<anweisungen2> ausgeführt (mit else-Zweig)
JavaScript II
Verzweigungen (if-else)
Beispiele:
if (moin<0) alert("Zu klein");
if(moin<1) moin = 0;
else moin--;
if(moin<0)
moin = 0;
else
if(moin>=5)
moin = 5;
else{
moin = moin++;
alert(moin);
}
JavaScript II
Verzweigungen (?-Operator)


Programmierer sind faul, deswegen gibt es für eine
einfache Entweder-Oder-Abfrage eine spezielle
Kurzschreibweise, den ?-Operator
Syntax:
<variable> = (<bedingung>) ? <wert1> :<wert2>

Semantik: Dies ist gleichbedeutend mit:
if (<bedingung>)
<variable> = <wert1>;
else
<variable> = <wert2>;
JavaScript II
Verzweigungen (?-Operator)
Beispiele:
moin = (moin<0) ?
0 : moin;
alert( (moin<0) ? "Zu klein" : "Genau richtig");
alert((moin<0) ? "Zu klein" : (moin>5) ? "Zu groß"
:"Genau richtig");
JavaScript II
Verzweigungen (switch-case)


Um mehrer Fälle unterscheiden zu können gibt
es die switch-case Anweisung.
Syntax:
switch(<variable>){
case <wert1>: <anweisung> [break;]
[case <wert2>: <anweisung> [break;] ]
[case …]
[default: <anweisung> [break;]]
}
JavaScript II
Verzweigungen (switch-case)


Semantik: Der Wert der Variable <variable> wird mit
den Werten hinter den case-Schlüsselworten
verglichen, sind sie identisch wird der Anweisungsblock
dahinter ausgeführt. (Fehlt das Schlüsselwort break;
werden auch alle Anweisungen alle folgenden Fälle
ausgeführt (Fall-through) bis zum nächsten break!)
Trifft keiner der Fälle zu, werden die Anweisungen
hinter dem optionalen default-Fall ausgeführt.
JavaScript II
Verzweigungen (switch-case)
Beispiele:
switch(moin){
case 1:
alert("1");
break;
case 2:
alert("2");
break;
default:
alert("Alles andere.");
break;
}
JavaScript II
Schleifen


Ein weiteres grundlegendes Element jeder
Programmiersprache sind Schleifen,d.h. Anweisungen
werden solange wiederholt bis eine bestimmte
Bedingung eintritt.
Es gibt drei Typen von Schleifen in JavaScript: while,
do-while und die for-Schleife
JavaScript II
Schleifen – while-Schleife

Syntax:
while(<bedingung>) <anweisungen>

<bedingung> kann eine beliebiger logischer
Ausdruck sein, <anweisungen> eine einzelne
Anweisung oder eine Anweisungsbock in
geschweiften Klammern.
JavaScript II
Schleifen – while-Schleife
Beispiele:
while(true) i = i+1; (Achtung:Endlosschleife!)
while(false) i = i+1; (Achtung:Keine Schleife!)
i = 0;
while(i<10){
i = i+1;
alert(i);
}
JavaScript II
Schleifen – do-while-Schleife

Syntax:
do <anweisungen> while(<bedingung>)


<bedingung> kann eine beliebiger logischer
Ausdruck sein, <anweisungen> eine einzelne
Anweisung oder eine Anweisungsbock in
geschweiften Klammern.
Unterschied zur while-Schleife: Die Anweisungen
werden mindestens einmal ausgeführt, weil die
Bedingung erst am Ende geprüft wird.
JavaScript II
Schleifen – for-Schleife

Syntax:
for([<anweisung1>];[<bedingung>];[<anweisung2>])
<anweisungen>




<anweisung1> ist einfache Anweisung (kein
Block!), zumeist Initialisierung einer Laufvariablen;
<bedingung> ist die Abbruchbedingung
<anweisung2> ist einfache Anweisung, zumeist
Variation (z.B. Hochzählen) der Laufvariablen
Alle drei Angaben sind optional!
JavaScript II
Schleifen – for-Schleife
Beispiele:
for(j = 0; j<3; j++) alert(j);
for(i = 10; i>=0; i -= 2){
zahl += i;
alert(zahl * zahl);
}
for(;;) alert("Endlosschleife");
JavaScript II
Schleifen – break und continue



Mit den Schlüsselwörter break und continue
kann man alle Schleifen beeinflussen.
Durch break wird die Schleife sofort beendet.
Durch continue wird an den Anfang des
Schleifenblocks gesprungen. Bei der forSchleife wird dabei noch <anweisung2>
ausgeführt und <bedingung> geprüft.
JavaScript II
Schleifen – break und continue
Beispiel:
while(true){
if(i==10) break;
i = i + 1;
}
for(i = 0; i<10; i++){
if(i % 2) continue;
alert(i);
}
JavaScript I
Funktionen




Funktionen sind Unterprogramme, d.h. wieder
verwendbare Programmteile
Sie können mit Parametern aufgerufen werden und
können einen Wert zurückgeben
Jede komplexere Anweisungsfolge, die in einem Script
mehrmals benutzt werden, sollten in Funktionen
gekapselt werden.
Sammlungen von Funktionen nennt man auch
(Funktions-)Bibliotheken. (Z.B. dll‘s bei Windows)
JavaScript I
Funktionen
Syntax:
function <name>([Parameterliste])
{
<anweisungen>
[return <value>;]
}






<name> ist ein Bezeichner der den selben Regeln wie
Variablennamen unterworfen ist
Die Parameterliste ist optional, sie besteht aus einer durch Komma
getrennte Liste von Variablennamen, den Argumenten der
Funktion.
Die geschweiften Klammern sind zwingend.
Im Funktionsrumpf können beliebige Anweisungen stehen.
Die return-Anweisung ist optional. Der dort angegebene Wert ist der
Rückgabewert.
JavaScript I
Funktionen
Beispiele:
function leer()
{
}
function ausgabe(text)
{
alert(text);
}
function mult(x,y)
{
var z = x*y;
return z;
}
JavaScript I
Funktionen


Funktionen dürfen sich auch selbst aufrufen, dass
nennt man Rekursion. Sehr elegant, aber nicht
immer effizient und potentiell gefährlich
(Endlosschleife).
Beispiel:
function fakultaet(n)
{
if(n <= 1) return 1;
return n*fakultaet(n-1);
}
JavaScript I
Objekte



Objekte sind Konstrukte die Variablen und Funktionen
unter einem gemeinsamem Dach vereinen.
In JavaScript kann man eigene Objekte definieren, aber
meisten benutzt man nur die vordefinierten Objekte
(z.B. window, document), vor allem um auf den Browser
und die HTML-Seite zuzugreifen.
Variablen eines Objektes heißen „Membervariablen“
und Funktionen heißen auch „(Objekt)Methoden“
JavaScript I
Objekte


Auf die Variabeln und Funktionen eines Objektes greift
man durch die Punktschreibweise zu.
Bespiel:
myObject.myVariable = 5;
test = myObject.myFunction(myObject.myVariable);


Objekte können auch wieder Unterobjekte haben. Auch
auf sie greift man durch die Punktschreibweise zu:
Bespiel:
myObject.mySubobject.myVar = 5;
test =
myObject.mySubobject.myFunction(myObject.myVariable);
JavaScript I
Objekte
Z.B. ist jeder String in JavaScript eigentlich ein Objekt!
Beispiel:

var text ="Teststring";
if(text.charAt(0) == "T")
alert("Beginnt mit T!")
else
alert("Beginnt nicht mit T!");
for(i = 0; i<text.length; +i){
alert(text.charAt(i));
}
JavaScript I
Arrays




Arrays sind ebenfalls grundlegende Elemente vieler
Programmiersprachen
Ein Array ist eine Zusammenfassung vieler
gleichartiger Variablen unter einem gemeinsamen
Namen.
Die einzelnen Elemente kann man durch einen Index
ansprechen, z.B. vektor[0] Der Index ist 0-basiert,
d.h. das erste Element wird durch den Index 0
angesprochen.
In JavaScript sind Arrays durch das eingebaute ArrayObjekt realisiert.
JavaScript I
Arrays
Beispiel:
//erzeugen eines leeren Arrays
var empty= new Array();
//erzeugen eines Arrays mit 5 Zahlen
var vektor= new Array(1, 2, 3, 4, 5);
/*Die Membervariable "length" enthaelt die Laenge
des Arrays*/
for(i = 0; i< vektor.length; ++i){
vektor[i] = vektor[i]* vektor[i];
}
JavaScript I
Arrays

Beispiel: Umwandeln eines Strings in ein
Zeichenarray:
var text ="Teststring";
var charArray= new Array();
for(i = 0; i<text.length(); ++i){
charArray[i] = text.charAt(i);
}
Herunterladen