MWA-JavaScript 2015

Transcription

MWA-JavaScript 2015
Multimediale Web-Anwendungen
JavaScript
Einführung
MWA – JavaScript-Einführung | Dr. E. Schön
Sommersemester 2015 | Folie 1
JavaScript
Entstehungsgeschichte:
●
1995 Netscape Communications Corp. (Brendan Eich)
●
Sprachkern 1997 als ECMAScript in ECMA1-262
standardisiert; aktuell: 5.1th Edition (2011)
●
aktuelle Versionen: JavaScript 1.8.5 (Juli 2010) und
JScript 9.0 (März 2011)
Konzept:
●
dynamisch typisierte, objektorientierte, aber klassenlose
Skriptsprache (von Interpreter umgesetzt)
●
Unterscheidung zwischen Sprache und Ablaufumgebung
●
mögliche Programmierparadigmen: prozedural,
objektorientiert, funktional
MWA – JavaScript-Einführung | Dr. E. Schön
Sommersemester 2015 | Folie 2
Eigenschaften von JavaScript
●
Script-Sprache – Verarbeitung schrittweise durch
Interpreter
●
clientseitigen Verarbeitung von Daten
●
meist Browser als Laufzeitumgebung - benötigt
JavaScript-Interpreter (kleine Abweichungen bei der
Implementation in einzelnen Browsern möglich)
●
Code wird in (X)HTML eingebettet und vom Browser
ausgeführt
●
(X)HTML-Datei als DOM-Baum im Speicher abgelegt –
Manipulation mit Hilfe von JavaScript → Veränderungen
und Interaktivität möglich
●
notwendig für Entwicklung und Test:
Browser und Editor (möglichst mit Syntax-Highlighting)
MWA – JavaScript-Einführung | Dr. E. Schön
Sommersemester 2015 | Folie 3
Leistungsmerkmale von JavaScript
●
Zugriff auf Bestandteile des geladenen Dokumentes
●
dynamische Änderung des geladenen Dokumentes
●
Steuerung externer Komponenten (SVG-Grafiken,
Applets, ...)
●
Reaktion auf Benutzeraktionen
●
Fenstermanagement
●
clientseitiger Zugriff auf Cookies (wichtig für
Personalisierung, Sessionmanagement)
●
Sandbox-Prinzip
MWA – JavaScript-Einführung | Dr. E. Schön
Sommersemester 2015 | Folie 7
Einbindung von JavaScript in HTML
Trennung von HTML- und Script-Code
Einbindung:
1.<script>-Tag (verbreitetste Möglichkeit)
–
siehe nächste Folie und Übungen
2.Einbindung als Attributwert von Event Handlern
<p class="style1" onmouseOver="this.className='style2'"
onmouseOut="this.className='style1'">
Text mit <b>mouseOver</b>-Effekt
</p>
3.Attributwerte, die URLs erwarten
<a href="javascript:alert('Hallo Welt!')">Melde dich!</a>
MWA – JavaScript-Einführung | Dr. E. Schön
Sommersemester 2015 | Folie 8
Beispiel für JavaScript innerhalb von HTML
<!DOCTYPE HTML>
<html>
<head>
<title>Beispiel zu JavaScript</title>
</head>
<body>
<h1>JS-Beispiel</h1>
<p>Normaler HTML-Text.</p>
<h2>JavaScript</h2>
<script type="text/javascript">
document.writeln("Zufallszahl: ");
var R = Math.random();
document.writeln(R, "<br><br>");
</script>
<p>Das ist wieder normaler HTML-Text.</p>
</body>
</html>
MWA – JavaScript-Einführung | Dr. E. Schön
Sommersemester 2015 | Folie 9
JavaScript-Syntax
Variable und Datentypen
●
Definition von Variablen mit var (nicht zwingend)
Typ dynamisch ermittelt, wenn nicht explizit festgelegt
Kontrollstrukturen
●
Verzweigungen: if, switch
●
●
Schleifen: for, while, do-while (mit break und continue)
Funktionen
●
müssen definiert werden, bevor sie verwendet werden
●
maximal einen Rückgabewert
Objekte
●
eigene Definition (syntaktisch über Definition von Funktionen)
●
vordefinierte Klassen vorhanden: Date, Math, String, Array
MWA – JavaScript-Einführung | Dr. E. Schön
Sommersemester 2015 | Folie 10
Funktionen
●
●
●
●
Zusammenfassung von Befehlen unter eigenem Namen
damit mehrfach aufrufbar
Variablen können übergeben werden; Rückgabewert mit
return gekennzeichnet
wird i.d.R. im <head>-Bereich der HTML-Datei definiert und im
<body>-Teil benutzt
Beispiel:
function quadrat(value) {
var result = 0;
result = value * value;
return result;
}
oder
function quadrat(value) { return value*value};
MWA – JavaScript-Einführung | Dr. E. Schön
Sommersemester 2015 | Folie 11
Objekte
●
●
●
●
Objekte sind Instanzen einer Klasse
nach Definition einer Klasse können beliebig viele Objekte
dieser Klasse erzeugt werden
Klasse (und damit Objekt) hat Eigenschaften (entsprechen den
Variablen) und Methoden zur Veränderung dieser Eigenschaften
Konstruktor zur Erzeugung eines neuen Objektes: new
Besonderheiten in JavaScript:
●
●
●
●
●
objektorientiert aber klassenlos
in JS existieren bereits Objekte, die verwendet werden können
Web-Browser stellt bereits Objekte zur Verfügung (window,
document, location, history, ...)
Erzeugung eigener Objekte in Form von Funktionen
Methoden als Funktionen innerhalb der „Objekt-Funktion”
MWA – JavaScript-Einführung | Dr. E. Schön
Sommersemester 2015 | Folie 12
Document Object Model
Document Object Model (DOM)
ist eine Spezifikation einer
Schnittstelle für den Zugriff auf
HTML- oder XML-Dokumente. Sie
wird vom World Wide Web
Consortium definiert.
DOM des Beispiels auf einer der
vorhergehenden Folien
Eine Implementierung, die dieser
Spezifikation genügt, besteht im
Sinne der objektorientierten
Programmierung aus einem Satz
von Klassen zusammen mit deren
Methoden und Attributen. Sie
erlaubt Computerprogrammen,
dynamisch den Inhalt, die
Struktur und das Layout eines
Dokuments zu verändern.
[Wikipedia 2015]
MWA – JavaScript-Einführung | Dr. E. Schön
Sommersemester 2015 | Folie 14
DOM-Vererbungshierarchie
(nach [WÖHR2004])
MWA – JavaScript-Einführung | Dr. E. Schön
Sommersemester 2015 | Folie 15
Variablen des Objektes Node (Beispiele)
nodeName: DOMString
attributes: NamedNodeMap
nodeValue: DOMString
ownerDocument: Document
nodeType: unsigned short
namespaceURI: DOMString
parentNode: Node
prefix: DOMString
childeNodes: NodeList
firstChild: Node
lastChild: Node
previousSibling: Node
nextSibling: Node
MWA – JavaScript-Einführung | Dr. E. Schön
Sommersemester 2015 | Folie 16
Methoden des Objektes Node (Beispiele)
insertBefore(newChild: Node, refChild: Node): Node
replaceChild(newChild: Node, oldChild: Node): Node
removeChild(oldChild: Node): Node
appendChild(newChild: Node): Node
hasChildNodes(): boolean
cloneNodes(deep: boolean): Node
normalize()
isSupported(feature: DOMString, version: DOMString):
boolean
hasAttributes(): boolean
MWA – JavaScript-Einführung | Dr. E. Schön
Sommersemester 2015 | Folie 17
Informationen zu JavaScript
Bücher
St. Koch: JavaScript (Einführung, Programmierung und
Referenz – inklusive Ajax), dpunkt.verlag Heidelberg 2011
D. Flanagan: JavaScript - kurz & gut (Taschenbuch);
O'Reilly Verlag 2012
Webseiten
ECMAScript® Language Specification
http://ecma-international.org/ecma-262/5.1/
SelfHTML-Wiki: http://wiki.selfhtml.org/wiki/JavaScript
W3-Schools: http://www.w3schools.com/js/default.asp
(Tutorial und Referenz)
MWA – JavaScript-Einführung | Dr. E. Schön
Sommersemester 2015 | Folie 18