03.02.2014 Aufrufe

JavaScript (Langversion)

JavaScript (Langversion)

JavaScript (Langversion)

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Übungen Informatik I<br />

Javascript<br />

http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/Tutorial<br />

Helga Gabler<br />

Übungen Informatik 1 1


6. <strong>JavaScript</strong><br />

Linkliste<br />

‣ http://www.heise.de/ct/browsercheck/js.shtml<br />

‣ http://java.rrzn.uni-hannover.de/javascript/index.html<br />

‣ „Voodoo <strong>JavaScript</strong> Tutorial“ und andere Einführungen:<br />

http://rummelplatz.uni-mannheim.de/~skoch/js/script.htm (deutsch)<br />

http://web.urz.uni-heidelberg.de/Ausbildung/Unterlagen/<strong>JavaScript</strong>/einleit.html (dt)<br />

http://www.stars.com/Authoring/<strong>JavaScript</strong>/Tutorial/ (englisch)<br />

‣ Selfhtml:<br />

http://www.teamone.de/selfhtml/ (deutsch)<br />

‣ Netscapes neueste <strong>JavaScript</strong>-Referenz:<br />

http://developer.netscape.com/tech/javascript/index.html (englisch)<br />

‣ Webbuilding:<br />

http://www.cnet.com (englisch)<br />

Helga Gabler<br />

Übungen Informatik 1 2


6. <strong>JavaScript</strong><br />

Literatur<br />

Frentzen, J. und H. Sobotka: <strong>JavaScript</strong> Annotated Archives<br />

Berkley, CA, USA: Osborne/McGraw-Hill. 1998<br />

Goodman, Danny:<br />

Dynamic HTML: The Definitive Reference<br />

Sebastopol, CA, USA: O‘Reilly & Associates, Inc.<br />

Holzner, Steven:<br />

McGraw-Hill 1998<br />

<strong>JavaScript</strong> Complete<br />

Koch, Stefan <strong>JavaScript</strong> – Einführung, Programmierung und Referenz<br />

2., aktualisierte und erweiterte Auflage. dpunkt-Verlag, 1999<br />

Münz, Stefan und Wolfgang Nefzger:<br />

HTML Referenz: Grundlagen, Alternativen und Erweiterungen<br />

Feldkirchen: Franzis Verlag 1997<br />

Seeboerger-Weichselbaum, Michael:<br />

Kaarst: bhv Verlag 1999<br />

Einsteiger Seminar <strong>JavaScript</strong><br />

Helga Gabler<br />

Übungen Informatik 1 3


6. <strong>JavaScript</strong><br />

Anwendung in Browsern<br />

<strong>JavaScript</strong> wird client-seitig (zur Laufzeit vom Web-Browser ) interpretiert.<br />

über CGI-nutzbare Sprachen (Perl, Java-Servlets, PHP) werden<br />

serverseitig ausgeführt.<br />

Dazu besitzen moderne Web-Browser entsprechende Interpreter-<br />

Software), d.h. der Client muss nur das Ausgabeformat der Skripte<br />

(HTML) oder Bildformate (gif / jpg) verstehen.<br />

<strong>JavaScript</strong>:<br />

- hat ähnliche Syntax wie Java das hier erlernte fast direkt übernehmen.<br />

- ist ansatzweise objektorientiert<br />

(Methodenaufrufe von Objekten; Vererbung fehlt)<br />

- ist ursprünglich von Netscape<br />

- <strong>JavaScript</strong>s-Programme werden wahlweise direkt in der HTML-Datei oder<br />

in separaten Dateien notiert.<br />

Helga Gabler<br />

Übungen Informatik 1 4


6. <strong>JavaScript</strong><br />

<strong>JavaScript</strong> - Versionen<br />

<strong>JavaScript</strong> - Versionen <br />

Browser - Versionen<br />

• <strong>JavaScript</strong> 1.0 Netscape 2.0 / InternetExplorer 3.0<br />

• <strong>JavaScript</strong> 1.1 Netscape 3.0 / InternetExplorer 4.0<br />

• <strong>JavaScript</strong> 1.2<br />

Netscape 4.0 / InternetExplorer 4.0(teilweise)<br />

• <strong>JavaScript</strong> 1.3 Netscape 4.6 / InternetExplorer 5.0<br />

• <strong>JavaScript</strong> 1.4 Netscape 6.0<br />

• <strong>JavaScript</strong> 1.5 Netscape 6.0<br />

• hierzu Testprogramm:<br />

Helga Gabler<br />

Übungen Informatik 1 5


6. <strong>JavaScript</strong><br />

<strong>JavaScript</strong> – Beispiel: was kann mein Browser?<br />

<br />

<br />

<br />

<br />

<strong>JavaScript</strong>: Browserfähigkeit testen<br />

<br />

<br />

<br />

<br />

document.write ("Browserinformationen: ");<br />

document.write ("", navigator.appCodeName);<br />

document.write ("", navigator.appName);<br />

document.write ("", navigator.appVersion);<br />

document.write ("", navigator.userAgent);<br />

<br />

<br />

Sie brauchen <strong>JavaScript</strong><br />

<br />

<br />

<br />

Helga Gabler<br />

Übungen Informatik 1 6


6. <strong>JavaScript</strong><br />

Layout von Quellcode<br />

Richtlinien der Java Code Convention:<br />

- Einrücken von Absätzen<br />

- Setzen von Klammern<br />

geschweifte Klammern am Ende der gleichen Zeile, die die<br />

Klammer notwendig macht<br />

Ablegen von Quellcode:<br />

<br />

<br />

<br />

oder<br />

<br />

<br />

Helga Gabler<br />

Übungen Informatik 1 7


6. <strong>JavaScript</strong><br />

Sprachelemente: Variablen<br />

Durch eine Variablen wird Speicherplatz für einen innerhalb des Programms<br />

veränderbaren Wert reserviert. Um die Variable später referenzieren zu können,<br />

haben sie einen Namen.<br />

Für die Vergabe von Namen gelten folgende Regeln:<br />

• Namen müssen mit einem Buchstaben (Groß oder Klein) oder<br />

Unterstrichzeichen (_) beginnen.<br />

• für weitere Zeichen sind erlaubt:Buchstaben, Ziffern, Unterstrich_);<br />

(keine: Leerzeichen, deutsche Umlaute od. ß,...)<br />

• JS ist casesensitve, d.h. zwischen Groß-/Kleinschreibung wird<br />

unterschieden (Bsp.: halloWelt, hallo_welt, hallo123 )<br />

• dürfen keine reservierten Wörtern (Bsp.: if, function, while) sein<br />

• Namen sollten maximal 32 Zeichen lang sein.<br />

Jede Variablendeklaration wird mit einem Semikolon abgeschlossen<br />

Helga Gabler<br />

Übungen Informatik 1 8


6. <strong>JavaScript</strong><br />

Variablen: Wertzuweisung<br />

Variablen brauchen in JS nicht definiert werden, um damit arbeiten zu können<br />

nicht ratsam, weil:<br />

1. kein sauberer Programmierstil<br />

2. unterschiedl. Resultate mit unterschiedl. Browsern sind möglich<br />

(in Zukunft evtl. Abbruch)<br />

Es gibt numerische Variablen (Zahlen Rechenoperationen) und Variablen<br />

für Zeichen bzw. Zeichenketten (Texte, Extrahieren einer Zeichenkette).<br />

Mögliche Zuweisungen sind:<br />

x = 42;<br />

Zuweisung eines festen Werts (Zahl) (num. Variable)<br />

x = “42“;<br />

Zuweisung eines festen Werts (Text) (Zeichenketten)<br />

x = 6*7;<br />

Zuweisung der Lösung einer Berechnung<br />

x = y;<br />

Zuweisung der Lösung aus anderen Variablen<br />

x = summe (6,7); Zuweisung der Lösung aus einer Funktion<br />

Helga Gabler<br />

Übungen Informatik 1 9


6. <strong>JavaScript</strong><br />

Anweisungen<br />

- steuern den Programmfluss<br />

- werden mit Semikolon “;“ beendet<br />

(in <strong>JavaScript</strong> nicht zwingend, aber unbed. einhalten, da so einige<br />

Fehlinterpretationen vermieden werden können, Java)<br />

Bsp.: x = 42;<br />

Zuweisung eines Werts an eine Variable<br />

if (x == 42) y = 1; Überprüfung einer Bedingung<br />

alert (“Hallo Welt“); Aufruf einer Funktion<br />

Anweisungsblöcke<br />

- beginnen mit einer geschweifter Klammer-auf {<br />

enden mit geschweifter Klammer-zu } (ohne {} nur 1 Anweisúng)<br />

Bsp.: if (Zahl > 1000)<br />

{<br />

Zahl = 0;<br />

alert (“Variable wurde zurückgesetzt“);<br />

}<br />

Helga Gabler<br />

Übungen Informatik 1 10


6. <strong>JavaScript</strong><br />

Datentypen<br />

Zahlen:<br />

Ganzzahlen:<br />

dezimal var a = 4.2e1; 42<br />

oktal var b = 052; 42<br />

hexadeziaml var c = 0x2A; 42<br />

Gleitkommazahlen<br />

var a = 1000.4e0 1000.4<br />

Strings:<br />

Stringkonstante = Kette von Zeichen in „“ oder ‚‘<br />

var Zeichen = ‘1‘;<br />

‘1‘<br />

var Ergebnis = Zeichen + Zeichen ‘11‘<br />

Boolesche Werte<br />

true / false<br />

Objekte kapseln Variablen und Funktionen in eine Struktur zusammen<br />

Steuerzeichen und Zeichenketten<br />

Helga Gabler<br />

Übungen Informatik 1 11


6. <strong>JavaScript</strong><br />

Zeichenketten<br />

Zeichen<br />

Name<br />

Wirkung<br />

\b<br />

backspace<br />

links davon stehendes Zeichen wird gelöscht<br />

\n<br />

\r<br />

\f<br />

new line<br />

carriage<br />

return<br />

form feed<br />

je nach System wird eine neue Zeile an der<br />

aktuellen Position oder am linken Rand<br />

begonnen.<br />

je nach System wird an den linken Rand in der<br />

aktuellen Position oder einer neuen Zeile<br />

positioniert.<br />

ein Seitenvorschub für Drucker wird eingebaut<br />

\t<br />

tab<br />

es wird bis zum nächsten Tabulator eingerückt<br />

\“<br />

quote<br />

steht für ein Anführungszeichen innerhalb von “...“<br />

\‘<br />

single quote<br />

steht für Apostroph innerhalb von “...“<br />

\\<br />

backslash<br />

erzeugt das Zeichen \ selbst<br />

Helga Gabler<br />

Übungen Informatik 1 12


6. <strong>JavaScript</strong><br />

Operatoren<br />

• Operatoren sind Zeichen, die verwendet werden, um Verknüpfungen oder<br />

Vergleiche zw. Variablen herzustellen.<br />

• eine Operation erzeugt immer einen Ergebniswert<br />

• eine Operation arbeitet mit einem oder mit zwei unäre / binäre Operatoren<br />

Man unterscheidet;:<br />

•Vergleichsoperatoren<br />

•Berechnungsoperatoren<br />

•Konkatenationsoperatoren<br />

•logische Operatoren<br />

•Bitoperatoren<br />

•Zuweisungsoperator<br />

Datentyp<br />

Zahlen, Strings (Zeichenketten)<br />

Zahlen<br />

Strings (Zeichenketten)<br />

boolesche Werte<br />

Zahlen, boolesche Werte<br />

alle<br />

Helga Gabler<br />

Übungen Informatik 1 13


6. <strong>JavaScript</strong><br />

Vergleichs-Operatoren<br />

= = gleicher Wert<br />

!= ungleich<br />

< kleiner als<br />

> größer als<br />

= größer oder gleich<br />

= = = exakt gleicher Wert und Typ(ab <strong>JavaScript</strong> 1.2)<br />

!= = Wert oder Typ sind nicht gleich (ab <strong>JavaScript</strong> 1.2)<br />

x = = 42; x gleich 42?<br />

x > 42; x größer 42?<br />

x >= 42; x größer gleich 42<br />

x != 42; x ungleich 42<br />

x = = = "42" ist x gleich 42 und vom Typ string?<br />

...<br />

Helga Gabler<br />

Übungen Informatik 1 14


6. <strong>JavaScript</strong><br />

Berechnungsoperatoren<br />

Berechnungsoperatoren: Bsp Erg<br />

+ Addition 2 + 2 4<br />

- Subtraktion 5 – 1 4<br />

* Multiplikation 3 * 6 18<br />

/ Division 27 9 3<br />

% Modulo-Operator 7 % 4 3<br />

++ Inkrement x = 10<br />

++x 11<br />

-- Dekrement x = 10<br />

--x 9<br />

Helga Gabler<br />

Übungen Informatik 1 15


6. <strong>JavaScript</strong><br />

Anfüge- / Konkatenationsoperator +<br />

Der Operator + zwischen zwei Strings bewirkt die Verkettung zu<br />

einem einzigen String.<br />

Er kann jedoch auch eine Typenumwandlung bewirken, wenn einer der beiden<br />

Operanden eine Zahl ist. Mangels explizierter Typkonvertierung (<strong>JavaScript</strong><br />

verlangt keine Typzuweisung bei der Deklarierung) versucht <strong>JavaScript</strong> stets zu<br />

erst eine Konvertierung in einen String durchzuführen und dann zu berechnen.<br />

Die implizite Typumwandlung führt beim Programmieren oft zu Fehlern!<br />

Anfügeoperator Wirkung<br />

Beispiel<br />

Ergebniswert<br />

+ Aneinanderreihung „Georg“ + „Schmidt“ „Georg Schmidt“<br />

var Zeichen = ‚1‘; ‚1‘<br />

var Ergebnis = Zeichen + Zeichen ‚11‘<br />

Helga Gabler<br />

Übungen Informatik 1 16


6. <strong>JavaScript</strong><br />

Logische Operatoren<br />

Für komplexere Bedingungen bietet <strong>JavaScript</strong> die Operatoren && als<br />

logisches "und", ! als logisches "nicht“ und || als logisches "oder".<br />

Leider gibt es kein exklusives "oder".<br />

&& und ( beide Bed. müssen erfüllt sein)<br />

|| inkl. oder (nur eine Bed. muss erfüllt sein)<br />

! nicht<br />

Beispiel:<br />

x = = 3 || y = = 4 ist x gleich 3 oder y gleich 4?<br />

x != 2 && y != 10 ist x ungleich 2 und y ungleich 10?<br />

Sonderverknüpfungen:<br />

! (A&&B) NAND NICHT-UND-Verknüpfung<br />

nur falsch, wenn A und B wahr<br />

! (A || B) NOR NICHT-ODER -Verknüpfung „weder...noch“<br />

nur wahr, wenn A und B falsch<br />

!A&&B || A&&!B XOR exklusives ODER<br />

„entweder ... oder ... “ (Antivalenz)<br />

wahr, wenn nur A oder nur B falsch<br />

A&&B || !A&&!B XNOR exklusives NICHT-ODER „aus... folgt ...<br />

wahr, wenn A und B übereinstimmen<br />

Helga Gabler<br />

Übungen Informatik 1 17


6. <strong>JavaScript</strong><br />

Bit-Operatoren<br />

Die Bitoperatoren », «, &, | und ^ sind sehr kompliziert und<br />

kaum gebräuchlich, daher werden sie hier nicht erklärt.<br />

a = x & y Und-Bedingung in Bitmaske<br />

b = x | y Oder-Bedingung in Bitmaske<br />

c = x ^ y exkl. Oder-Bedingung in Bitmaske<br />

d = x >> y verschiebt die Bitmaske um 1 Bit nach rechts<br />

(füllt mit 0 auf)<br />

e = x


6. <strong>JavaScript</strong><br />

Zuweisungsoperatoren (Kurzschreibweise)<br />

Operator Wirkung<br />

= Einfache Wertzuweisung A = 5 A 5<br />

+= Addition und Zuweisung A += 5 A 10<br />

+= Addition und Zuweisung ‚Ei += ‚dotter‘<br />

‘Eidotter‘<br />

-= Subtraktion und Zuweisung A -= 2 A 8<br />

*= Multiplikation und Zuweisung A *=2 A 16<br />

/= Division und Zuweisung A /= 2 A 8<br />

%= Modulo-Operation und Zuweisung A %= 3 A 2<br />

&= Bitweises „UND“und Zuweisung A &= 3 A 2<br />

^= Bitweises „Exklusiv-Oder“und Zuw. A ^= 5 A 4<br />

| = Bitweises „ODER“ und Zuweisung A != 5 A 5<br />

>= 2 A 5<br />

>>> = Null-Fill-Rechtsverschiebung und Zuw. A >>>=2 A 1<br />

Helga Gabler<br />

Übungen Informatik 1 19


6. <strong>JavaScript</strong><br />

andere Operatoren<br />

einfacher Bedingungsoperator<br />

Operator Wirkung Beispiel<br />

Ergebniswert<br />

?: Bedingung true ? „yes“ : „no“<br />

„yes<br />

false ? „yes“ : „no“<br />

„no“<br />

Typenkonvertierung und typeof-Operator:<br />

Helga Gabler<br />

Übungen Informatik 1 20


6. <strong>JavaScript</strong><br />

Rangfolge der Operatoren<br />

Rangstufe Oper.-Zeichen Oper.-Name Oper.-Typ<br />

(1 höchste Prior.)<br />

1 () [] Klammer Gruppierung<br />

2 ! Nicht Log. Oper.<br />

3 ++ -- Inkr. / Dekr Berechn.Oper.<br />

4 - Negation Berechn.Oper<br />

5 ~ Nicht Bit-Oper.<br />

6 * Multipl. Berechn.Oper.<br />

7 / Division Berechn.Oper.<br />

8 % Modula-Operator Berechn.Oper.<br />

9 + Aneinanderreihung Konkaten.Oper.<br />

10 + Addition Berechn.Oper.<br />

11 - Subtraktion Berechn.Oper.<br />

12 > Rechtsversch Bit-Oper.<br />

14 >> Null-fill-Rechtsversch Bit-Oper.<br />

mit Klammern können Sie die Rangfolge bei den Operatoren beeinflussen<br />

Helga Gabler<br />

Übungen Informatik 1 21


6. <strong>JavaScript</strong><br />

Bedingte Anweisung IF<br />

Die if-Schleife ist die einfachste Form der Bedingung. <strong>JavaScript</strong> kennt kein<br />

then, jedoch ist else möglich. Ihre Syntax lautet<br />

if (Bedingung)<br />

{<br />

Anweisung1 oder Anweisungsblock1<br />

}<br />

else<br />

{<br />

Anweisung2 oder Anweisungsblock2<br />

}<br />

Helga Gabler<br />

auch: verschachtelte Bedingungen, if { … if {… if {… }}}<br />

mehrstufige Bedingungen if { … else if { … else { …}}}<br />

möglich<br />

Beispiel:<br />

if (x > y) alert (“x ist groesser als y.“); else alert (“x ist nicht groesser als<br />

y.“); PasswortEingabe.html<br />

Übungen Informatik 1 22


6. <strong>JavaScript</strong><br />

if Schleife – Beispiel 1<br />

<br />

<br />

Beispiel zur if-Schleife<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Helga Gabler<br />

Übungen Informatik 1 23


6. <strong>JavaScript</strong><br />

Entweder-Oder-Abfrage<br />

Beispiel 1: „Zeitausgabe mit P.M. oder A.M.“<br />

Time = ‚2‘ + (Stunden > 12) ? ‚P.M.‘ : ‚A.M.‘;<br />

Beispiel2: ges: „größte Zahl von x,y,z“ (ternärer /dreifach Operator)<br />

var x,y,z;<br />

document.write ("Die gr&ouml;&szlig;te Zahl lautet ",<br />

(x>y) ? ((z>x) ? z:x) : ((z>y) ? z:y)<br />

(x>y ) ? ( (z>x) ? z:x) : ( (z>y) ? z:y) )<br />

(x>y) ja (z>x) ja z<br />

nein x<br />

nein (z>y) ja z<br />

nein y<br />

GrößteVon3Zahlen.html<br />

Helga Gabler<br />

Übungen Informatik 1 24


6. <strong>JavaScript</strong><br />

Entscheidungen<br />

Sind die folgenden Aussagen wahr oder falsch?<br />

a) var a=5, b=18<br />

if (a>0 && b!=18)<br />

1 && 0<br />

b) var zahl=10, wert=100<br />

if (zahl != 0 || zahl > wert || wert-zahl == 90)<br />

0 || 0 || 1<br />

0 || 1<br />

c) var x=1.0, y=5.7<br />

if (x >= .9 && y 0 && n2 > 0 || n1 > n2 && n2 != 17)<br />

1 && 1 || 0 && 0<br />

1 || 0<br />

Helga Gabler<br />

Übungen Informatik 1 25


6. <strong>JavaScript</strong><br />

switch/case<br />

Auch neu in der Version 1.2 ist die switch/case-Anweisung. Mit ihr lassen sich<br />

komplizierte Konstrukte wie<br />

if<br />

else<br />

if<br />

else<br />

deutlich verkürzen. Ihre Syntax lautet:<br />

switch(variable)<br />

{<br />

case Möglichkeit1: Anweisung1;break;<br />

case Möglichkeit2: Anweisung2;break;<br />

.<br />

.<br />

default: default-Anweisung;break;<br />

}<br />

Helga Gabler<br />

Übungen Informatik 1 26


6. <strong>JavaScript</strong><br />

switch/case –Beispiel 2<br />

<br />

<br />

<br />

Helga Gabler<br />

Übungen Informatik 1 27


6. <strong>JavaScript</strong><br />

while und do-while Schleifen<br />

Die while-Schleife sieht beispielhaft so aus:<br />

while (x < 10) { x++; a = b*x; }<br />

Bedingung steht wieder in ( ).<br />

Wenn sie erfüllt ist wird die Schleife durchlaufen<br />

Seit der Version 1.2 unterstützt <strong>JavaScript</strong> nun auch die do/while-Schleife<br />

(vorher nur die while-Schleife). Auch mit ihr lassen sich Aktionen wiederholen<br />

bis ein bestimmter Ausdruck wahr wird. Ihre Syntax lautet:<br />

do<br />

{<br />

Anweisung oder Anweisungsblock<br />

}<br />

while (Bedingung)<br />

Helga Gabler<br />

Übungen Informatik 1 28


6. <strong>JavaScript</strong><br />

do / while Schleifen – Beispiel 3<br />

<br />

Beispiel zur do/while-Schleife<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Helga Gabler<br />

Übungen Informatik 1 29


6. <strong>JavaScript</strong><br />

for Schleife<br />

Mit der for-Schleife lassen sich Anweisungen wiederholen bis ein bestimmter<br />

Ausdruck wahr wird. Sie eignet sich auch sehr gut, um Arrays zu durchlaufen.<br />

Die Syntax lautet:<br />

for (Initialisierung; Test; Aktualisierung)<br />

{<br />

Anweisung oder Anweisungsblock<br />

}<br />

Helga Gabler<br />

Übungen Informatik 1 30


6. <strong>JavaScript</strong><br />

for Schleife Beispiel 4<br />

<br />

<br />

Beispiel zur for-Schleife<br />

<br />

<br />

<br />


6. <strong>JavaScript</strong><br />

Break- und Continue-Anweisungen<br />

Möglichkeit um einen Schleigfendurchlauf abzubrechen<br />

Break:<br />

continue:<br />

Beispiel:<br />

stoppt den Schleifendurchlauf;<br />

beginnt mit der Anweisung, die der abgebrochenen<br />

Schleife unmittelbar folgt<br />

beendet den aktuellen Schleifendurchlauf,<br />

beendet aber die Schleife nicht, sondern fährt mit<br />

dem nächsten Schleifendurchlauf fort.<br />

Vorsicht: Gefahr von Endlosschleife<br />

<strong>JavaScript</strong>/JS-BreakContinue.html<br />

Helga Gabler<br />

Übungen Informatik 1 32


6. <strong>JavaScript</strong><br />

Funktionen<br />

• Funktionen entsprechen Prozeduren aus anderen Sprachen<br />

• zeigen am deutlichsten den Unterschied zwischen Java und <strong>JavaScript</strong>.<br />

• Sind Anweisungsblöcke, die separat aufgerufen werden können.<br />

Funktionen werden durch<br />

Funktionsname ( ) { Anweisungsblock }<br />

definiert und durch Funktionsname (Parameter) aufgerufen.<br />

Dieser Aufruf kann<br />

• aus einem Skript, ( Beispiel)<br />

• aus einer anderen Funktion ( Beispiel)<br />

• aus einem Event-Handler ( Beispiel)<br />

• aus einem HTML-Tag (Beispiel)<br />

heraus erfolgen.<br />

Helga Gabler<br />

Übungen Informatik 1 33


6. <strong>JavaScript</strong><br />

Funktionen Definition<br />

Bsp.: function summieren ( )<br />

{<br />

...<br />

}<br />

• Funktion muss einen Namen haben (s.o.)<br />

• Namen schreibt man vor Anweisungsblock, der die Funktion<br />

implementiert<br />

• reserviertes Wort ”function” wird vor den Namen gestellt (für<br />

Interpreter)<br />

• nach dem Namen muss (!) ein rundes Klammerpaar gesetzt werden<br />

• evtl. Parameterkennungen werden in dem Klammerpaar eingebaut<br />

• nach den runden Klammern kommt der Anweisungsblock:<br />

beginnt mit geschweifter Klammer-auf {<br />

endet mit geschweifter Klammer-zu }<br />

Helga Gabler<br />

Übungen Informatik 1 34


6. <strong>JavaScript</strong><br />

Funktionen mit Parameter<br />

• Werte mit denen ein Funktion rechnen soll werden über<br />

Parameterliste übergeben<br />

• Definition der Parameter:<br />

in den runden Klammern bei der Funktions Deklaration<br />

• Variablen, die innerhalb einer Funktion deklariert werden<br />

sind lokale Variable<br />

existieren nur innerhalb dieser Funktion (s.o.)<br />

Helga Gabler<br />

Übungen Informatik 1 35


6. <strong>JavaScript</strong><br />

Funktionen - Aufruf mit Rückgabewerte<br />

eine Funktion kann einen Rückgabewert liefern (=Zahl oder Text):<br />

return rueckgabewert;<br />

Bsp.: function summieren (summand1, summand2;) {<br />

rueckgabewert = summand1 + summand2;<br />

return rueckgabewert;<br />

}<br />

Aufruf der Funktion: meineZahl = summieren (6,7)<br />

(der Variablen meineZahl wird der Wert von rueckgabewert zugewiesen)<br />

Helga Gabler<br />

Übungen Informatik 1 36


6. <strong>JavaScript</strong><br />

Bsp.5a: Funktion mit Parameter in einem Script<br />

<br />

Beispiel zum Funktionsaufruf aus einem Skript<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Helga Gabler<br />

Übungen Informatik 1 37


6. <strong>JavaScript</strong><br />

Bsp.5b: Fkt. mit Parameter und Rückgabewert in einem Script<br />

<br />

Funktionen<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Helga Gabler<br />

Übungen Informatik 1 38


6. <strong>JavaScript</strong><br />

Helga Gabler<br />

Bsp.6: Funktionsaufruf in einer Funktion<br />

<br />

Beispiel zum Funktionsaufruf aus einer anderen Funktion<br />

<br />

<br />

<br />

<br />

<br />

<br />

Übungen Informatik 1 39


6. <strong>JavaScript</strong><br />

Bsp.7: Funktionsaufruf über Event Handler<br />

<br />

Beispiel zum Funktionsaufruf durch einen Event-Handler<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Fahren Sie über den Link! <br />

<br />

<br />

Helga Gabler<br />

Übungen Informatik 1 40


6. <strong>JavaScript</strong><br />

Bsp.8: Funktionsaufruf über HTML-Tag<br />

<br />

Beispiel zum Funktionsaufruf aus einem Tag<br />

<br />

<br />

<br />

<br />

<br />

<br />

Klicken Sie bitte hier! <br />

<br />

<br />

Helga Gabler<br />

Übungen Informatik 1 41


6. <strong>JavaScript</strong><br />

Regeln für selbstvergebenen Namen - Konventionen<br />

• Variablennamen sollten klein geschrieben werden<br />

• sollten ausdrücken, welche Bedeutung eine Variable / Funktion hat,<br />

wozu sie verwendet wird<br />

• Name aus mehren Worten = ein Wort ohne Unterstrich z.B.:<br />

summeJahreswerte, nameKunde,...<br />

• Namen aus einem Buchstaben haben immer die gleiche Bedeutung:<br />

i,j,k,l, usw. z.B. für Zählvariablen<br />

x,y,z, usw. für Koordinaten<br />

r, g, b für Rot- Grün und Blauanteil von Farben<br />

Helga Gabler<br />

Übungen Informatik 1 42


6. <strong>JavaScript</strong><br />

Kommentare<br />

Einzeiliger Kommentar beginnt mit //<br />

Mehrzeiliger Kommentar beginnt mit /*<br />

endet mit */<br />

Wichtig um Informationen für Entwickler abzulegen<br />

• welche Aufgabe hat die Funktion oder<br />

• Bedingung unter der die Funktion arbeitet<br />

Beachte:<br />

Keine sensitive Informationen (Passwörter), da im Quelltext für jeden<br />

sichtbar<br />

Helga Gabler<br />

Übungen Informatik 1 43


6. <strong>JavaScript</strong><br />

lokale / globale Variablen<br />

Es gibt globale Variablen und lokale Variablen.<br />

• Globale Variablen sind im gesamten Dokument gültig und stehen<br />

jederzeit zur Verfügung. Auf sie kann auch in einer Funktion<br />

zugegriffen werden.<br />

• Lokale Variable werden innerhalb einer Funktion deklariert.<br />

Ihr Gültigkeitsbereich ist auf die Funktion beschränkt<br />

außerhalb der Funktion kann nicht auf sie zugegriffen werden.<br />

Parameter, die einer Funktion übergegeben werden, werden ebenfalls als<br />

lokale Variablen behandelt<br />

Helga Gabler<br />

Übungen Informatik 1 44


6. <strong>JavaScript</strong><br />

Variablen: Definitionen, Initialisierung, Zuweisung<br />

Variablen können gleich bei der Definition einen Wert zugewiesen<br />

bekommen = Initialisierung<br />

Es können mehrere Variablen auf einmal (durch Kommata getrennt) definiert<br />

werden<br />

var y; var y wird deklariert (vereinbart)<br />

x = 25; var x wird deklariert und initialisiert<br />

var y=234; var y bekommt einen Wert zugewiesen<br />

(Zuweisung kann zu jeder Zeit erfolgen, egal ob die Variable<br />

bereits initialisiert ist, oder nicht)<br />

var y=“Jetzt kommt Text“;<br />

Einer numerischen Variablen kann auch später eine Zeichenkette<br />

zugewiesen<br />

werden<br />

Inhalt einer Variable ist immer von einem best. Typ, aber die Variable<br />

kann bel. oft den Typ wechseln<br />

Typenwechsel sind kein guter Programmierstil!<br />

Helga Gabler<br />

Übungen Informatik 1 45


6. <strong>JavaScript</strong><br />

lokale / globale Variablen - Beispiel<br />

var Hinweis = "Gleich werden Quadratzahlen ausgegeben";<br />

alert(Hinweis);<br />

function SchreibeQuadrate() {<br />

var SinnDesLebens = 42;<br />

var i, x;<br />

var Satzteil = "Das Quadrat von ";<br />

for(i=1; i


6. <strong>JavaScript</strong><br />

eingebaute Funktionen<br />

folgende Funktionen sind in JS bereits vorhanden. Die Funktionsnamen<br />

sind reserviert.<br />

eval (Zeichenkette) alert (x = eval („3 + 4 * 6“)); 27<br />

escape (Zeichenkette)<br />

liefert den hex. Wert der Steuerzeichen<br />

(mit ASCII-Wert von 0 bis 31<br />

unescape (Zeichenkette) führt das Gegenteil aus<br />

IsNaN (Wert) is not a number = ist keine Zahl (zum testen)<br />

true /false<br />

IsFinite (Wert)<br />

testet, ob der übergebene Wert innerhalb des<br />

Zahlenbereichs liegt, den JS verarbeiten kann<br />

true / false<br />

parseFloat (Zeichenkette) wandelt Zeichenkette in eine Zahl um<br />

(NaN, wenn nicht möglich)<br />

parseInt (Zeichenkette) wandelt Zeichenkette in eine ganze Zahl um<br />

(Bsp: c = parseInt(A) + parseFloat(b);<br />

Helga Gabler<br />

Übungen Informatik 1 47


6. <strong>JavaScript</strong><br />

Objekte<br />

Objekte bilden die grundlegende Datenstruktur in der OOP.<br />

Es sind Programmmodule, die aus Methoden und Daten bestehen<br />

können. Die Daten dürfen nie direkt manipuliert werden, sondern<br />

müssen immer über Methoden angesprochen werden.<br />

Daten, z.B. Variablen, von <strong>JavaScript</strong> können auch direkt<br />

angesprochen werden und verletzen so das Prinzip der<br />

"Datenkapselung".<br />

Zusätzlich benutzt <strong>JavaScript</strong> sog. Unterobjekte, die in einer<br />

baumähnlichen Stuktur aufrufbar sind.<br />

Helga Gabler<br />

Übungen Informatik 1 48


6. <strong>JavaScript</strong><br />

Objekte<br />

Was ist ein Objekt?<br />

Objekt ist ein Verbund aus Informationen über Daten und<br />

Informationen – oder :<br />

Objekt besitzt<br />

- Eigenschaften, die durch Variablen gekennzeichnet sind<br />

- Funktionen (also Methoden), mit denen das Objekt<br />

(oder seine Eigenschaften) manipuliert werden kann<br />

Helga Gabler<br />

Übungen Informatik 1 49


6. <strong>JavaScript</strong><br />

Methoden<br />

Methoden:<br />

- erlauben den Zugriff/ Manipulation auf die Daten eines Objektes<br />

- ( "Datenkapselung“)<br />

- werden durch den Punktoperator aufgerufen<br />

- enden immer mit Klammern.<br />

- In den Klammern können Parameter übergeben werden<br />

Beispiel:<br />

document.write():<br />

document.write('Dieser Text ist ein String-Parameter');<br />

Helga Gabler<br />

Übungen Informatik 1 50


6. <strong>JavaScript</strong><br />

Eigenschaften<br />

Eigenschaften<br />

- sind Daten bzw. Variablen, die einem bestimmten Objekt anhängen.<br />

- speichern z.B. Namen / Größe / Farbe eines Objekts.<br />

- können boolesche Werte, Strings (URLs), enthalten.<br />

- können innerhalb jederzeit ausgelesen, und in vielen Fällen auch<br />

geändert werden<br />

( Zuweisung eines neuen, gültigen URL-Adresse an ein im Browser-<br />

Fenster angezeigtes Dokument. der WWW-Browser springt<br />

dadurch zu der zugewiesenen URL-Adresse ausführt, entspr. Klick auf<br />

, einen entsprechenden Verweis)<br />

selbstdefiniertes Objekt „Mensch“ mögliche Eigenschaften<br />

„ Name, Alter, Geschlecht und Muttersprache<br />

( selfhtml: <strong>JavaScript</strong> Objekte, Eigenschaften und Methoden)<br />

vordefinierte Objekt:<br />

„Math„ : Eigenschaft "PI„ Math.PI<br />

window Eigenschaft „innerHeight“ window.innerHeight<br />

Helga Gabler<br />

Übungen Informatik 1 51


6. <strong>JavaScript</strong><br />

Eigenschaften – Beispiel „Schiff“<br />

Eigenschaften können in jeder Instanz unterschiedliche Werte haben. Instanzen sind<br />

„Vertreter“ einer Objektart.<br />

Beispiel: SCHIFF<br />

Schiff „Anna II“ = Vertreter der Schiffe allgemein.<br />

1. Objektdefinition für Schiffe:<br />

Eigenschaften für alle Instanzen sind: „Name“ und „Farbe“:<br />

Konstruktor-Funktion legt diese 2 Eigenschaften für alle<br />

Schiff<br />

Instanzen fest.<br />

function Schiff (NM, FB)<br />

{<br />

this.Name = NM;<br />

this.Farbe = FB;<br />

}<br />

Name Farbe<br />

Schlüsselwort this definiert die Eigenschaft Name und Farbe<br />

2. Initialisierung von Objekten: var annaII = new Schiff (‚Anna II‘, ‚rot‘);<br />

Helga Gabler<br />

Übungen Informatik 1 52


6. <strong>JavaScript</strong><br />

Eigenschaften - Beispiel „Schiff“<br />

Erweiterung des Beispiels: Schiff: „Schiff bekommt Kapitän“<br />

Objektdefinition von Personen:<br />

Person<br />

function Person (NM, VN) {<br />

this.Name = NM;<br />

this.Vorname = VN;<br />

Name Vorname<br />

}<br />

Instanziierung von Kapitän über Konstruktor:<br />

var kirk = new Person (“Kirk“, “James“);<br />

Schiffobjekt wird um Kapitän erweitert + Schiff wird instanziiert:<br />

function Schiff (NM, FB, KP) {<br />

this.Name = NM;<br />

this.Farbe = FB;<br />

enterprise<br />

this.Kapitaen = KP;<br />

}<br />

var enterprise = new Schiff (“Enterprise“, “weiss“, kirk); weiss<br />

Kapitaen<br />

Enterprise<br />

Helga Gabler<br />

Übungen Informatik 1 53


6. <strong>JavaScript</strong><br />

Methoden – Beispiel „Schiff“<br />

Methoden werden den Objekten als Eigenschaften zugewiesen.<br />

function untergehen (Meter) {<br />

document.write (“Das Schiff soll „ + Meter + “ sinken!“);<br />

}<br />

document.write (untergehen);<br />

Zugriff auf Eigenschaft des Objekts: mit this<br />

(Referenz auf das aktuelle Objekt, wenn Funktion als Methode in<br />

Objektdefinition deklariert wird!)<br />

function untergehen (Meter)<br />

{<br />

this.Tiefe -= Meter;<br />

document.write (this.Name + “ ist “ + Meter + “ Meter auf “ +<br />

this.Tiefe + “ Meter gesunken!“);<br />

}<br />

Beispiel 9: Titanic.html<br />

Beispiel 10: Halloween.html<br />

Helga Gabler<br />

Übungen Informatik 1 54


6. <strong>JavaScript</strong><br />

Methoden – Beispiel „Halloween“<br />

Objekte <br />

<br />

<br />

<br />

<br />

<br />

Helga Gabler<br />

<br />

Übungen Informatik 1 55<br />


6. <strong>JavaScript</strong><br />

Vordefinierte Objekte<br />

in JS eingebaute Objekte, die häufig benötigte Funktionen als Methoden<br />

beinhalten:<br />

• mathem. Funktionen<br />

• Methoden zur Berechnung/Verwendung von Uhrzeiten/Kalendertagen<br />

• Abspeicherung von Variablenlisten<br />

• Satz von Funktionen zur Zeichenkettenverarbeitung<br />

• seit Version 1.2: Objekte Screen (Kapselung von Eigenschaften des<br />

Bildschirms des Benutzers)<br />

• seit Version 1.2: Objekt RegExp. Konzept der regulären Ausdrücke<br />

Helga Gabler<br />

Übungen Informatik 1 56


6. <strong>JavaScript</strong><br />

Vordefinierte Objekte<br />

Objekte sind fest umgrenzte Datenelemente mit Eigenschaften und oft auch mit<br />

objektgebundenen Funktionen (Methoden).<br />

<strong>JavaScript</strong> = Erweiterung von HTML , wegen den vordefinierten Objekten<br />

Die <strong>JavaScript</strong>-Objekte sind in einer Hierarchie geordnet:<br />

Beispiel:<br />

window (Fenster haben Eigenschaften wie einen Titel, eine Größe usw. )<br />

document<br />

(Das im Fenster angezeigte Dokument, i.d.R. HTML-Datei)<br />

forms, ... (Inhalt einer HTML-Datei in diesem Fenster, i.d.R. HTML-Tags<br />

z.B. Formulare, Verweise, Grafikreferenzen )<br />

Helga Gabler<br />

elements<br />

(Inhalte dieser HTML-Tags, z.B. Eingabefeldern, Auswahllisten<br />

oder Buttons zum Absenden bzw. Abbrechen)<br />

Übungen Informatik 1 57


6. <strong>JavaScript</strong><br />

Helga Gabler<br />

hierarchisches Objekt-Modell<br />

Neben den hierarchisch geordneten <strong>JavaScript</strong>-Objekten<br />

gibt es auch solche, die nicht in die Hierarchie passen.<br />

Das sind zum Beispiel Objekte für<br />

Datums- und Zeitrechnung<br />

Date<br />

mathematische Aufgaben<br />

math<br />

Zeichenkettenverarbeitung<br />

string<br />

Ketten von Variablen<br />

Array<br />

Ja/nein-Werte<br />

Boolean<br />

<strong>JavaScript</strong>-Funktionen<br />

Function<br />

Browser-Informationen<br />

navigator<br />

MimeType-Informationen<br />

mimeTypes<br />

vorhandene Plugins<br />

plugins<br />

numerische Werte<br />

Number<br />

reguläre Ausdrücke<br />

RegExp<br />

Bildschirm-Informationen<br />

Screen<br />

<strong>JavaScript</strong> Objekt-Referenz von Selfhtml:<br />

Hierarchie.pdf<br />

Übungen Informatik 1 58


6. <strong>JavaScript</strong><br />

Zeichenkettenverarbeitung: Vordefiniertes Objekt „string“<br />

Bsp: Eigenschaft length (selfhtml:)<br />

Eingabe = window.prompt ("Irgendetwas eingeben", "");<br />

alert ("Eingegebene Zeichen: " + Eingabe.length);<br />

Die Eigenschaften und Methoden des Objektes string können auf alle<br />

Zeichenketten angewendet werden. So können in einer Zeichenkette z.B.<br />

alle darin enthaltenen Kleinbuchstaben in Großbuchstaben umgewandelt,<br />

oder HTML-Formatierungen auf die Zeichenkette anwenden.<br />

Helga Gabler<br />

Übungen Informatik 1 59


6. <strong>JavaScript</strong><br />

Objekte string – Beispiel „zitat“<br />

Beispiel:<br />

Variable zitat<br />

mit der Zeichenkette<br />

„Sein oder nicht sein ...“<br />

Helga Gabler<br />

Übungen Informatik 1 60


6. <strong>JavaScript</strong><br />

numerische Werte: Vordefiniertes Objekt „number“<br />

Zugriff auf Eigenschaften numerischer Werte. So können Sie ermitteln, ob<br />

ein Wert eine gültige Zahl ist, oder welches die maximale positive oder<br />

negative Zahl ist, die in einer numerischen Variablen gespeichert werden<br />

kann.<br />

Beispiel:<br />

groessteZahl = Number.MAX_VALUE;<br />

Helga Gabler<br />

Übungen Informatik 1 61


6. <strong>JavaScript</strong><br />

Objekt number – Eigenschaften und Methoden<br />

Helga Gabler<br />

Übungen Informatik 1 62


6. <strong>JavaScript</strong><br />

Reguläre Ausdrücke - Objekt RegExp<br />

Reguläre Ausdrücke dienen dazu, Suchausdrücke zu formulieren, um in<br />

Zeichenketten danach zu suchen und um gefundene Stellen durch andere<br />

zu ersetzen. ( selfhtml)<br />

Reg. Expr. = Werkzeug um Strings zu verarbeiten<br />

Verendung, Sie können überprüfen ob:<br />

•Eingabe einer E-Mail-Adresse in einem Formular gültig sein kann<br />

•eine Telefonnummer die korrekte Formatierung hat<br />

•...<br />

Instanzen aus regulären Ausdrücken erzeugen:<br />

var re = /pipapo/; Var re wird reg. Ausdruck pipapo zugewiesen<br />

var re = /pipapo/gi; g : global (nach dem ersten Treffer weitersuchen)<br />

i : Suche ohne Rücksicht auf Groß-/Kleinschreibung<br />

var re = /\bpipapo\b/; \b: Wortgrenze (Metazeichen)<br />

Suche nach den Zeichen . [ ] * ? { } ( ) ^ $ mit \<br />

var re = /\D:\\Daten\\Grafiken\\Apfel\.GIF/i;<br />

findet den Pfad: G:\DATEN\Grafiken\apfel.gif<br />

Helga Gabler<br />

Übungen Informatik 1 63


6. <strong>JavaScript</strong><br />

Interpretierbare Metazeichen – Tabelle1<br />

Helga Gabler<br />

Übungen Informatik 1 64


6. <strong>JavaScript</strong><br />

Interpretierbare Metazeichen – Tabelle2<br />

Helga Gabler<br />

Übungen Informatik 1 65


6. <strong>JavaScript</strong><br />

Objekt RegExp - Methoden<br />

Methoden<br />

compile („\bpipapo\b“, „gi“);<br />

exec („pipapo“);<br />

anwenden<br />

test („pipapo“);<br />

Suchmuster in das Objekt kompilieren<br />

reg. Ausdruck auf Zeichenkette (hier:pipapo)<br />

„null“, wenn Suchmuster nicht gefunden<br />

sonst: gefundene Stelle in Eigenschaft „index“<br />

OriginalString in Eigenschaft „input“<br />

true, wenn Treffer gefunden (=>e-mailtest)<br />

Eigenschaften eine Instanz des reg.Ausdrucks<br />

global<br />

true / false<br />

ignoreCase<br />

true / false<br />

lastIndex ab welcher Stelle soll die Suche beginnen (Beginn =<br />

0)<br />

source<br />

Suchmuster als string (ohne beide Schrägstriche)<br />

Helga Gabler<br />

RegExp-MethodeTest.html<br />

Übungen Informatik 1 66


6. <strong>JavaScript</strong><br />

Vordefiniertes Objekt Array<br />

Das Objekt Array ist als "Container" für Ketten gleichartiger Variablen<br />

gedacht. In der Programmierersprache spricht man auch von einem<br />

"Vektor". Wenn Sie beispielsweise die 16 Grundfarben speichern wollen,<br />

brauchen Sie keine 16 Variablen, sondern ein Array-Objekt, in dem Sie 16<br />

gleichartige Werte (im Beispiel: Farbwerte) speichern können.<br />

Objektname = new Array();<br />

Objektinstanz von Array mit dem (selbst vergebener Namen)<br />

Objektnamen<br />

Instanz von Objekt Array wird gebildet mit<br />

= new Array<br />

new =reserviertes Wort<br />

Array = Objektfunktion<br />

Helga Gabler<br />

Übungen Informatik 1 67


6. <strong>JavaScript</strong><br />

Objekt Array – Instanzen bilden<br />

Anzahl der Elemente im Variablenvektor unklar:<br />

Objektname = new Array();<br />

MeineFrauen = new Array();<br />

Anzahl der Elemente im Variablenvektor bekannt:<br />

Objektname = new Array(Zahl);<br />

MeineFrauen = new Array(100);<br />

Definition und Initialisierung des Vektors<br />

Objektname = new Array(Element0, Element1, ..., element_n);<br />

MeineFrauen = new Array("Anita","Bettina","Christa","Doris");<br />

Helga Gabler<br />

Übungen Informatik 1 68


6. <strong>JavaScript</strong><br />

Objekt Array – Beispiel „obstNamen“<br />

var meineVarliste = new Array();<br />

var obstNamen = new Array(95);<br />

Definition<br />

Länge des Arrays wird definiert<br />

Beispiel: Abspeichern von 5 Obstsorten:<br />

obstNamen[0] = “Apfel”;<br />

obstNamen[1] = “Birne”;<br />

obstNamen[2] = “Kirsche”;<br />

obstNamen[3] = “Pflaume”;<br />

obstNamen[4] = “Orange”;<br />

oder:<br />

var obsNamen = new Array<br />

(“Apfel”,”Birne”,”Kirsche”,”Pflaume”,”Orange”);<br />

Helga Gabler<br />

Übungen Informatik 1 69


6. <strong>JavaScript</strong><br />

Objekt Array - Programmbeispiele<br />

Array:<br />

Der Index beginnt in <strong>JavaScript</strong> bei 0<br />

Initialisierung erfolgt über Index (in eckiger Klammer)<br />

Eigenschaft length enthält die Größe des Feldes<br />

ein neues Array wird mit dem Operator new erzeugt<br />

Beispiele hierzu:<br />

arrays1.html<br />

arrays2.html<br />

arrays3.html<br />

ObjektArray-MethodeSort.html<br />

Navigationsleiste.html<br />

Helga Gabler<br />

Übungen Informatik 1 70


6. <strong>JavaScript</strong><br />

Objekt Date<br />

Systemzeit über Date-Objekt:<br />

Instanzen von Date:<br />

aktuelles Datum<br />

können für Kalendertage und Uhrzeiten erzeugt werden<br />

<strong>JavaScript</strong> intern:<br />

nur Uhrzeiten und Kalendertage<br />

nach dem 1.1.1970 um 0:00 Uhr<br />

alle Methoden beziehen sich auf den Zeitpunkt,<br />

der seitdem vergangen ist.<br />

Helga Gabler<br />

Übungen Informatik 1 71


6. <strong>JavaScript</strong><br />

Objekt Date: Zeitangaben abfragen und setzen<br />

var Jetzt = new Date();<br />

setzt Zeit auf Systemzeit<br />

zur Zeit der Ausführung<br />

var MeineErsteUhrzeit = new Date (“Monat Tag Jahr<br />

Stunde:Minute:Sekunden”);<br />

( Datum als String in engl. Zeitnotation, Format genau einhalten!)<br />

var MeineZweiteUhrzeit = new Date (Jahr, Monat Tag);<br />

Zahlenwerte für Jahr,Monat und Tag, hier =0, da Werte fehlen<br />

var MeineDritteUhrzeit = new Date (Jahr, Monat,Tag,Stunde,<br />

Minute,Sekunden”);<br />

aktuelle Systemuhrzeit wird gesetzt (zusätzlich)<br />

Helga Gabler<br />

Übungen Informatik 1 72


6. <strong>JavaScript</strong><br />

navigator-Objekt: Eigenschaften<br />

navigator-Objekt beschreibt Eigenschaften des Browsers<br />

Beispiel: Navigator.html<br />

Helga Gabler<br />

Übungen Informatik 1 73


6. <strong>JavaScript</strong><br />

window-Objekt<br />

window-Objekt steht an der Spitze der Objekthierarchie<br />

(~ "Container" für alles, was im Anzeigefenster des WWW-Browsers<br />

angezeigt werden kann)<br />

Dokumentfenster abfragen und kontrollieren.<br />

neue Fenster definieren. (dabei sind Fenstereigenschaften frei bestimmbar)<br />

reservierten Fensternamen window oder self :<br />

ansprechen des nicht selbst erzeugten, vorhandenen Hauptanzeigefensters<br />

des WWW-Browsers.<br />

alle Eigenschaften und Methoden des window-Objekts lassen sich auf<br />

window und self anwenden.<br />

window / self können weggelassen werden<br />

self Referenz auf sich selbst Bsp.: open.html<br />

Helga Gabler<br />

Übungen Informatik 1 74


6. <strong>JavaScript</strong><br />

Unterobjekte des window-Objekts<br />

document<br />

event<br />

history<br />

location<br />

Beim<br />

Helga Gabler<br />

Inhalt, der im Browser-Fenster angezeigt wird:<br />

z.B. Links,Anker,Bilder,Formulare)<br />

Einzelinformationen zu Anwenderereignissen wie Mausklicks<br />

oder Tasteneingaben ermitteln und weiterverarbeiten<br />

z.B genaue Position ermitteln, wo ein Mausklick erfolgte,<br />

oder bei einem Tastendruck die gedrückte Taste abfragen.<br />

Zugriff auf die besuchten WWW-Seiten des Anwenders<br />

massgeblich History-Liste<br />

Zugriff auf die vollständige URL-Adresse der aktuell<br />

angezeigten WWW-Seite. URL-Adresse oder Teile davon<br />

können zur Weiterverarbeitung abgefragt und geändert werden.<br />

ändern führt der WWW-Browser einen Sprung zu einer neuen<br />

URL-Adresse aus, genau so wie bei einem Verweis.<br />

Übungen Informatik 1 75


6. <strong>JavaScript</strong><br />

wichtige Methoden des window-Objekts<br />

alert(Text)<br />

blur ()<br />

clearTimeout (TimeoutID)<br />

close ()<br />

confirm(Text)<br />

focus()<br />

open(“URL”, “Name”, “Optionen”)<br />

prompt (“Text”,”Vordefinition”)<br />

öffnet ein Dialogfenster<br />

Browserfenster in Hintergrund<br />

hält laufende Stoppuhr an<br />

schließt das Browserfenster<br />

öffnet ein Dialogfenster mit Text als<br />

Meldung, und Buttons “OK” und<br />

“Abbrechen”<br />

holt Browserfenster in Vordergrund<br />

öffnet neues Browserfenster<br />

WindowOpen.html,<br />

EingangsScreen.html<br />

öffnet Dialogfenster mit Text und<br />

Aufforderung zur Eingabe<br />

setTimeout(“<strong>JavaScript</strong>-Ausdruck”,Millisekunden)<br />

setzt einen Countdown, führt nach den an=<br />

angebenen Millisekunden den Ausdruck aus<br />

Helga Gabler<br />

Übungen Informatik 1 76


6. <strong>JavaScript</strong><br />

wichtige Eigenschaften window-Objekts<br />

defaultStatus<br />

opener<br />

voreingestellter Text in der Statuszeile des Browsers<br />

Referenz auf das Fenster, das dieses Fenster geöffnet hat<br />

self Referenz auf sich selbst Bsp.: open.html<br />

status<br />

locationbar<br />

scrollbars<br />

toolbar<br />

derzeit dargestellter Text in der Statuszeile des Browsers<br />

URL-Adreßzeile<br />

Scroll-Leisten<br />

Werkzeugleiste<br />

Helga Gabler<br />

Übungen Informatik 1 77


6. <strong>JavaScript</strong><br />

Frames -Objekt<br />

Zugriff auf Frames, also auf ein Frame-Set und seine Frame-Fenster,<br />

die in einer HTML-Datei definiert sind (Jedes Frame-Fenster stellt aus Sicht<br />

des Browsers ein eigenes Fenster dar)<br />

Variante des window-Objekts<br />

Rahmen eines Framesets finden sich im frames-Array wieder.<br />

frames-Array = Eigenschaft des windows-Objekts<br />

enthält alle frames-Objekte, in der Reihenfolge, wie sie<br />

im Frameste angelegt wurden<br />

Beispiel: Framesets.html<br />

Unterobjekte<br />

document<br />

event<br />

history<br />

location<br />

Helga Gabler<br />

Übungen Informatik 1 78


6. <strong>JavaScript</strong><br />

Frames -Objekt<br />

Ansprechen von Frames:<br />

durch Namen (name=) oder frames-Array<br />

window.frames[“anzeige”] = window.frames[2]<br />

(aus Beispiel)<br />

Eigenschaften von Objekt frames:<br />

parent<br />

self<br />

top<br />

Referenz auf Frame, der in der Hierarchie eine Stufe höher steht<br />

Referenz auf sich selbst<br />

Referenz auf den hierarchisch höchsten Frame<br />

(Browser-Fenster, indem alle Frames dargestellt werden)<br />

Helga Gabler<br />

Übungen Informatik 1 79


6. <strong>JavaScript</strong><br />

location -Objekt<br />

über die Eigenschaft des location-Objekts lassen sich Informationen über den<br />

URL des geladenen Dokuments abrufen:<br />

window.location.protocol<br />

window.location.hostname<br />

window.location.port<br />

window.location.pathname<br />

window.location.search<br />

window.location.hash<br />

window.location.href<br />

window.location.host<br />

“http:”<br />

“www.beispiel-site.de”<br />

“80” (TCP/IP-Portnr. des Servers<br />

Pfadangabe (alles was zw. Port und “#” steht<br />

String, der Parameter für CGI-Programme<br />

enthält “?suche=test”<br />

enthält Anker, falls im URL vorhanden<br />

“#Anker”<br />

enthält kompletten URL<br />

entspricht hostname:port<br />

Helga Gabler<br />

Übungen Informatik 1 80


6. <strong>JavaScript</strong><br />

location –Objekt - Beispiele<br />

if (top.frames.length > 0) top.location.href = self.location;<br />

verhindert, daß eine Frame in fremde Frames eingesperrt wird.<br />

Beispiel: Suchmaschinen findet einen Link auf eine HTML-Seite, die nur in einem<br />

Frameset Sinn macht (z.B. Navigationsleiste).<br />

if ( (top.frames.length == 0) || parent.name != “Hauptfenster”))<br />

top.location.href = “frame.html”;<br />

Lösung: beim Aufruf der Seite wird das komplette Frameset geladen.<br />

Helga Gabler<br />

Übungen Informatik 1 81


6. <strong>JavaScript</strong><br />

history -Objekt<br />

history-Objekt verwaltet eine Liste der zuletzt besuchten URLs wie einen<br />

Stapel. (Vor, zurück.Taste)<br />

Methoden:<br />

window.history.back()<br />

window.history.forward()<br />

Browser soll vorheriges Dokument laden<br />

lenkt den Browser wieder vorwärts<br />

(nach einem back()<br />

window.history.go(Schritte) lädt den URL, der in der History<br />

Schritte (- / +) weit entfernt liegt<br />

Eigenschaft<br />

length<br />

Anzahl der Einträge in der History des Browsers<br />

Helga Gabler<br />

Übungen Informatik 1 82


6. <strong>JavaScript</strong><br />

document –Objekt: Eigenschaften<br />

document-Objekt beschreibt mit seinen Eigenschaften:<br />

- die Attribute des body-Tags<br />

- den Titel des Dokuments<br />

- die Elemente des geladenen HTML-Dokuments<br />

Eigenschaften von document-Objekt:<br />

bgColor Hintergrundfarbe (kann nach dem Laden der<br />

Webseite verändert werden)<br />

fgColor Textfarbe, kann nicht mehr verändert werden<br />

linkColorFarbe eines noch nicht besuchten Links im Text<br />

alinkColor Farbe eines “aktiven Links” (bereits geklickt, aber<br />

dessen URL noch nicht geladen ist)<br />

vlinkColor Farbe eines zuvor schon besuchten Links im Text<br />

lastModified Datum, an dem das Dokument zuletzt verändert wurde<br />

(kann nicht verändert werden.)<br />

Helga Gabler<br />

Übungen Informatik 1 83


6. <strong>JavaScript</strong><br />

document –Objekt Eigenschaften/Methoden<br />

Eigenschaften von document-Objekt:<br />

Methoden von window.document<br />

Helga Gabler<br />

Übungen Informatik 1 84


6. <strong>JavaScript</strong><br />

image –Objekt<br />

Zugriff auf alle Grafiken, die in einer HTML-Datei definiert sind.<br />

Dabei können Sie auch vorhandene Grafiken dynamisch durch andere<br />

ersetzen.<br />

Es stehen folgende Arten zur Verfügung, mit <strong>JavaScript</strong> eine bestimmte<br />

Grafik anzusprechen:<br />

document.images[#].Eigenschaft<br />

document.images[#].Methode()<br />

Hoehe = document.images[0].height;<br />

oder<br />

document.BildName.Eigenschaft<br />

document.BildName.Methode()<br />

Hoehe = document.Portrait.height;<br />

Lichter.html<br />

Lauflichter.html<br />

Navigationsleiste.html<br />

Helga Gabler<br />

Übungen Informatik 1 85


6. <strong>JavaScript</strong><br />

forms –Objekt<br />

Zugriff auf Formulare, die in einer HTML-Datei definiert sind.<br />

Selfhtml<br />

Formulare werden durch forms-Objekte und zusätzlich durch f<br />

orms-Arrays repräsentiert<br />

einzelne Formularelemente sind elements-Arrays<br />

Objekte in den element-Arrays besitzen Eigenschaften wie:<br />

name oder<br />

wieder ein options-Array<br />

Helga Gabler<br />

Übungen Informatik 1 86


6. <strong>JavaScript</strong><br />

forms –Objekt : Beispiel<br />

<br />

<br />

<br />

<strong>JavaScript</strong> Formular entwerfen: <br />

<br />

/SCRIPT><br />

<br />

<br />

<br />

<br />

Ihre Frage:&nbsp;<br />

<br />

<br />

Abo?:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Zum mir<br />

<br />

Helga Gabler<br />

Übungen Informatik 1 87


6. <strong>JavaScript</strong><br />

Helga Gabler }<br />

forms –Objekt : Funktion „Formular.js“<br />

function info(obj) {<br />

var infoWnd = window.open("","docProps","status.resizable")<br />

infoWnd.document.open()<br />

infoWnd.document.write ("")<br />

infoWnd.document.write ("Dokumentobjekte")<br />

infoWnd.document.write ("")<br />

infoWnd.document.write ("document.bgColor,"")<br />

infoWnd.document.write ("document.linkColor,"")<br />

infoWnd.document.write ("document.title,"")<br />

infoWnd.document.write ("document.URL,"")<br />

infoWnd.document.write ("document.referrer,"")<br />

infoWnd.document.write ("document.forms[0].action,"")<br />

infoWnd.document.write ("document.Anfrage.method,"")<br />

infoWnd.document.write ("document.Anfrage.length,"")<br />

infoWnd.document.write ("document.Anfrage.frage.value,"")<br />

infoWnd.document.write ("document.Anfrage.frage.defaultValue,"")<br />

infoWnd.document.write ("document.Anfrage.abo.defaultChecked,"")<br />

infoWnd.document.write ("obj.name,"")<br />

infoWnd.document.write ("document.Anfrage.ok.name,"")<br />

infoWnd.document.write ("obj.value,"")<br />

infoWnd.document.write ("dokument.links[0].href,"")<br />

infoWnd.document.write ("dokument.links[0].protocol,"")<br />

infoWnd.document.write ("")<br />

infoWnd.document.close()<br />

Übungen Informatik 1 88


6. <strong>JavaScript</strong><br />

Auslesen und Setzen von Formulardaten<br />

Um an Formulardaten zu kommen, um z.B. diese auf Richtigkeit zu<br />

prüfen, ruft man das entsprechende Element der HTML-Seite auf:<br />

Lesend:<br />

x = document.Testformular.Eingabe.value;<br />

Schreibend:<br />

document.Testformular.Eingabe.value = “Das was rein soll.“;<br />

Formular.html<br />

Helga Gabler<br />

Übungen Informatik 1 89


6. <strong>JavaScript</strong><br />

Auslesen und Setzen von Formulardaten<br />

Formular.html<br />

Helga Gabler<br />

Übungen Informatik 1 90


6. <strong>JavaScript</strong><br />

Event-Handler<br />

‣ stellen das Bindeglied zwischen HTML und <strong>JavaScript</strong> dar<br />

‣ reagieren auf bestimmte Tastur- und Mausereignisse<br />

‣ werden als Attribute in HTML-Tags geschrieben<br />

‣ beziehen sich auf das entsprechende HTML-Element.<br />

‣ sind HTML 4.0 Standard<br />

‣ beginnen immer mit on, zum Beispiel onClick=<br />

Hinter dem =-Zeichen notieren Sie in Anführungszeichen, eine <strong>JavaScript</strong>-<br />

Anweisung. z.B.<br />

onClick="Umrechnen()“ oder<br />

<br />

Fahren Sie über den Link!<br />

Helga Gabler<br />

Übungen Informatik 1 91


6. <strong>JavaScript</strong><br />

Event-Handler: Einige Beispiele zur Anwendung<br />

onBlur<br />

onMouseover<br />

onLoad<br />

onUnload<br />

onDblClick<br />

onmouseclick<br />

Der Mauszeiger wurde über einen Bereich bewegt<br />

Die linke Maustaste wurde gedrückt<br />

onLoad<br />

Passwort-Eingabe.html<br />

onMoseOver, onMouseOut)<br />

BildFarbeAendern.html<br />

(OnLoad,OnMouseOver, OnMouseOut HintergrundFarbeAendern.html<br />

Helga Gabler<br />

Übungen Informatik 1 92


6. <strong>JavaScript</strong><br />

Event-Handler<br />

Weiteres oft genutzes Feature: Verweis auf javaScript-Funktion<br />

(kein Event-Handler im eigentlichen Sinne, aber Alternative für Buttons)<br />

Beispiel:<br />

Eine Seite zur&uuml;ck <br />

javascript:history.back()) HintergrundFarbeAendern.html<br />

javascript:void(opener.location.href)<br />

Fernbedienung/JS-Projekt.html (zweites Fenster<br />

Helga Gabler<br />

Übungen Informatik 1 93


6. <strong>JavaScript</strong><br />

Event-Handler - Beispiele<br />

Beispieldateien für Event Handler:<br />

Beispiele.html<br />

Helga Gabler<br />

Übungen Informatik 1 94


6. <strong>JavaScript</strong><br />

Beispiel : Guthaben.java<br />

public class Guthaben {<br />

public static void main(String[] args) {<br />

int guthaben = 1000;<br />

System.out.println("Guthaben = " + guthaben);<br />

int einzahlung = 500;<br />

System.out.println("Einzahlung = " + einzahlung);<br />

}<br />

}<br />

guthaben = guthaben + einzahlung;<br />

System.out.println("Guthaben = " + guthaben);<br />

Helga Gabler<br />

Übungen Informatik 1 95


6. <strong>JavaScript</strong><br />

Aufgabe „Steuerberechnung“<br />

Gegeben sei ein Betrag in Euro ohne Mehrwertsteuer.<br />

a) Berechnen Sie den Bruttobetrag<br />

b) ziehen Sie davon 2% Skonto ab<br />

Helga Gabler<br />

Übungen Informatik 1 96


6. <strong>JavaScript</strong><br />

Übung 10<br />

Erstellen Sie ein HTML-Formular, in welches Vorname, Nachname,<br />

Geburtsdatum und E-Mail-Adresse eingetragen werden kann.<br />

Testen Sie browserseitig die Vollständigkeit der Eingaben soweit dies<br />

möglich ist.<br />

(z.B. kommt das Zeichen @ in der E-Mail-Adresse vor).<br />

Das Formular soll nur bei vollständigen Eingaben abgeschickt werden.<br />

Helga Gabler<br />

Übungen Informatik 1 97

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!