JavaScript ist eine Skriptsprache, die hauptsächlich für das DOM-Scripting in Web-Browsern eingesetzt wird.
Der als ECMAScript (ECMA 262) standardisierte Sprachkern von JavaScript beschreibt eine dynamisch typisierte, objektorientierte, aber klassenlose Skriptsprache. Sie wird allen objektorientierten Programmierparadigmen unter anderem auch – aber eben nicht ausschließlich – auf der Basis von Prototypen gerecht. In JavaScript lässt sich objektorientiert und sowohl prozedural als auch funktional programmieren.
Während HTML/CSS nur rudimentäre Möglichkeiten zur Nutzerinteraktion bietet, können mit JavaScript Inhalte generiert und nachgeladen werden.
Inhaltsverzeichnis
[Verbergen]
* 1 Entwicklung
* 2 Überblick
o 2.1 Typische Anwendungsgebiete
o 2.2 Missbrauch
* 3 Geschichte
o 3.1 Versionsgeschichte
* 4 Sicherheit
o 4.1 Das Sandbox-Prinzip
o 4.2 Deaktivieren von JavaScript
* 5 Sprachelemente
o 5.1 Datentypen
o 5.2 Kontrollstrukturen
+ 5.2.1 if-else (Bedingte Anweisung)
+ 5.2.2 Switch-Kontrollstruktur
+ 5.2.3 While-Schleife
+ 5.2.4 Do-while-Schleife
+ 5.2.5 For-Schleife
+ 5.2.6 For … in-Schleife
+ 5.2.7 For Each … in-Schleife
o 5.3 Geltungsbereich von Variablen
o 5.4 Funktionen
+ 5.4.1 Erzeugung
o 5.5 Objekte
+ 5.5.1 Vordefinierte Objekte
+ 5.5.2 Zugriff auf Objekteigenschaften und -methoden
+ 5.5.3 Objektliterale
+ 5.5.4 Konstruktor-Funktionen
+ 5.5.5 "private" Eigenschaften
+ 5.5.6 Vererbung über Prototypen
o 5.6 Dialogmethoden / Benutzereingaben
o 5.7 Fehlerbehandlung
* 6 JavaScript-Bibliotheken
* 7 Literatur
* 8 Siehe auch
* 9 Weblinks
o 9.1 Spezifikationen
o 9.2 Dokumentationen
* 10 Quellen
Entwicklung [Bearbeiten]
Die Syntax von JavaScript ähnelt jener der C-Abkömmlinge, wozu auch Java gehört. Trotz der Namens- und syntaktischen Ähnlichkeit hat JavaScript nur geringe Gemeinsamkeiten mit Java, beispielsweise wird Objektorientierung in JavaScript anders als in Java nicht durch Klassen, sondern durch Prototypen unterstützt.
Von Brendan Eich zuerst Mocha genannt, wurde die Sprache aus Marketinggründen erst in LiveScript und letztendlich in JavaScript umbenannt: Um dem damals aktuellen Java-Trend zu entsprechen, entstand mit LiveConnect eine Schnittstelle zwischen Java und LiveScript, was sich im neuen Namen JavaScript ausdrücken sollte.[1] JavaScript ist eine Marke des Unternehmens Sun Microsystems, heute zu Oracle gehörend.[2]
Ursprünglich für den Netscape Navigator entwickelt, finden sich heute nach dem sogenannten Browserkrieg mittlerweile in praktisch allen grafischen Browsern weitgehend kompatible JavaScript-Interpreter wie z. B. SpiderMonkey für Mozilla/Gecko oder JScript von Microsoft. Der Sprachkern von JavaScript ist unter dem Namen ECMAScript durch Ecma International standardisiert. Der in Java implementierte JavaScript-Interpreter Rhino wird ab Version 6.0 als Teil der Java-Laufzeitumgebung standardmäßig mitgeliefert.[3]
Inzwischen hat sich die Sprache auch neue Anwendungsgebiete erschlossen. Zum Beispiel wird sie gerne als Skriptsprache für Spiele und Anwendungsprogramme eingesetzt, da der Sprachkern nur wenige Objekte enthält und dadurch der zur Ausführung von in JavaScript formulierten Skripten erforderliche Interpreter relativ klein gehalten werden kann.
Überblick [Bearbeiten]
JavaScript wird hauptsächlich clientseitig eingesetzt, im Unterschied zu anderen im Web verwendeten Sprachen, wie Perl oder PHP, die ausschließlich serverseitig eingesetzt werden. JavaScript bzw. die ECMAScript-Implementierungen finden jedoch beispielsweise auf Netscape Enterprise Servern (NES), und als JScript bzw. JScript.NET in einer ASP- bzw. ASP.NET-Umgebung auf Microsoft Internet Information Services auch serverseitig Anwendung (Stichwort Server-Side JavaScript). Weitere Beispiele für serverseitige Javascript-Programmierung sind POW und Jaxer, die auf der Mozilla-Javascript-Engine Spidermonkey aufsetzen.
JavaScript wurde ursprünglich von Sun Microsystems und Netscape in Kooperation entwickelt. Trotz des ähnlichen Namens und einer ähnlichen Syntax ist JavaScript grundlegend verschieden von der Programmiersprache Java, die von Sun Microsystems stammt. Die Namensgleichheit erklärt sich wohl vor allem aus der Absicht, aus Marketinggründen eine Verbindung mit den damals sehr populären Java-Applets herzustellen. Die Syntax wurde auch aus diesem Grund weitgehend der von Java angeglichen.
Die ursprüngliche Grundfunktionalität von JavaScript ist heute als ECMAScript oder ECMA-262 standardisiert und wird von den meisten Browsern weitgehend unterstützt (JavaScript in der Version 1.5 entspricht ECMA-262 Version 3).
Typische Anwendungsgebiete [Bearbeiten]
Typische Anwendungsgebiete von JavaScript sind:
* Dynamische Manipulation von Webseiten über das Document Object Model
* Plausibilitätsprüfung (Validierung) von Formulareingaben beim Absender
* Senden und Empfangen von Daten, ohne dass der Browser die Seite neu laden muss (Ajax)
* sofortiges Vorschlagen von Suchbegriffen (suggesting search)
* Banner oder Laufschriften
* Verschleierung von E-Mail-Adressen zur Bekämpfung von Spam (siehe den betreffenden Artikel).
* Mehrere Frames auf einmal wechseln oder die Seite aus dem Frameset „befreien“
Missbrauch [Bearbeiten]
Einige Anwendungen, die mit JavaScript möglich sind, verärgern meistens den Benutzer und werden als „schlechter Stil“ angesehen:
* Quelltext „verschleiern“, um diesen vor dem Besucher zu verstecken
* Verschleiern von Internetadressen, auf die ein Link verweist
* Deaktivieren des Kontextmenüs, um zu erschweren, dass Bilder oder die gesamte Seite abgespeichert werden können
* Deaktivieren der Kopierfunktion, um zu erschweren, dass Texte oder Bilder kopiert werden können
* Unaufgeforderte (Werbe-)Pop-ups oder Pop-unders
* Ungewolltes Öffnen von Fenstern, teilweise auch Öffnen beliebig vieler Fenster
* Ungewolltes Schließen des Browserfensters
* Ungewollte Größenänderung des Browserfensters
* Blockieren der Anwender mit zahllosen aufeinanderfolgenden Dialogfenstern
* Bei anfälligen Webanwendungen kann JavaScript auch von Dritten missbraucht werden, etwa per XSS (Codeeinschleusung).
* JavaScript-Navigation: Barrierearme Webseiten zeichnen sich dadurch aus, dass sie auch bei abgeschaltetem JavaScript möglichst uneingeschränkt navigierbar bleiben. Oft schränkt das nicht aktivierte JavaScript die Benutzbarkeit einer Webseite ein.
Geschichte [Bearbeiten]
Am 18. September 1995 veröffentlicht Netscape mit der Vorversion des Navigator 2.0 einen Browser mit einer eingebetteten Skriptsprache, die zu diesem Zeitpunkt LiveScript heißt und von Brendan Eich entwickelt wurde. Die Sprache kann u. a. Formulareingaben des Benutzers vor dem Absenden überprüfen. Am 4. Dezember 1995 verkünden Netscape und Sun Microsystems eine Kooperation, die die Interaktion von LiveScript direkt mit Java-Applets zum Ziel hat. Sun entwickelte die nötigen Java-Klassen, Netscape die Schnittstelle LiveConnect und benennt die Sprache in JavaScript um (JavaScript 1.0).
Mit der ersten Beta-Version des Navigator 3.0 führt am 29. April 1996 Netscape JavaScript 1.1 ein. Neu ist die Möglichkeit, auf Bilder zuzugreifen und so genannte Rollover-Grafiken zu erstellen. LiveConnect ist jetzt Bestandteil des Browsers. Mit der Beta-Version des Internet Explorer 3 stellt im Mai 1996 Microsoft seinen ersten JScript-fähigen Browser vor. Beginn des Browserkriegs. Mit der Ankündigung des Netscape Communicators wird JavaScript 1.2 am 15. Oktober 1996 veröffentlicht, der Netscape Communicator 4.0 mit JavaScript 1.2 erscheint jedoch erst am 4. Juni 1997. Ebenfalls im Juni 1997 veröffentlicht die European Computer Manufacturers Association ihren Standard ECMA-262 (ECMAScript), der zusammen mit Netscape entwickelt wurde und die Grundelemente einer Skriptsprache standardisieren soll. Diese wird im April 1998 zur ISO-Norm ISO/IEC 16262:1998 Information technology – ECMAScript language specification. Am 1. Oktober 1997 kommt der Internet Explorer 4 heraus, der den Sprachumfang von JavaScript 1.1 abdeckt. Darüber hinaus werden eigene Erweiterungen veröffentlicht, die zu Kompatibilitätsunterschieden zwischen Navigator und Internet Explorer führen und eine DOM-ähnliche Syntax zur Verfügung stellen, die es ermöglicht, auf alle Elemente der Webseite zuzugreifen und diese beliebig zu verändern.
Im Juli 1998 kommt mit der Beta-Version des Netscape Communicators 4.5 JavaScript 1.3. Erstmals zu finden war diese JavaScript-Version schon in der Version 4.06 des Netscape Communicators.
Im Oktober 1998 stellt Netscape JavaScript 1.4 vor. Diese Version ist vollständig kompatibel mit ECMA-262. Ein Browser mit der Unterstützung dieser Version erscheint jedoch nicht.
Im April 2000 kommt mit der Preview Release 1 des Navigator 6 JavaScript 1.5 und DOM Level 1. Am 5. Juni 2002 erscheint Mozilla 1.0 mit JavaScript 1.5, am 29. November 2005 Mozilla Firefox 1.5 mit JavaScript 1.6, am 12. Juli 2006 Mozilla Firefox 2.0b1 mit JavaScript 1.7. und am 18. Dezember 2007 Mozilla Firefox 3.0b2 mit JavaScript 1.8.