JavaScript (Langversion)
JavaScript (Langversion)
JavaScript (Langversion)
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öß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: <br />
<br />
<br />
Abo?: <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ü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