JavaScript (kurz JS) ist eine Skriptsprache, die ursprünglich 1995 von Netscape für dynamisches HTML in Webbrowsern entwickelt wurde, um Benutzerinteraktionen auszuwerten, Inhalte zu verändern, nachzuladen oder zu generieren und so die Möglichkeiten von HTML und CSS zu erweitern.
JavaScript wurde früher hauptsächlich clientseitig eingesetzt. JavaScript bzw. die ECMAScript-Implementierungen ermöglichen aber beispielsweise mit dem Framework Node.js und als JScript bzw. JScript .NET in einer ASP- bzw. ASP.NET-Umgebung auf Microsoft Internet Information Services auch serverseitige Anwendungen.
Sprachelemente - Datentypen
Der Datentyp eines Wertes lässt sich mit dem Operator typeof ermitteln.
Zeichenketten haben den Typ String (typeof liefert "string"), numerische Werte den Typ Number (typeof liefert "number"), boolesche Werte den Typ Boolean (typeof liefert "boolean"). Funktionen sind kein primitiver Typ; typeof liefert "function".
Ein Sonderfall ist der Typ Undefined mit undefined als einzigem Wert. Für alle anderen Werte – reguläre Ausdrücke, Arrays und den Wert null inbegriffen – liefert typeof den Zeichenketten-Wert "object" zurück. Im Gegensatz zu anderen Programmiersprachen gibt es in JavaScript keine echten assoziativen Arrays.
Mit den vordefinierten Konstruktorfunktionen String(), Number() und Boolean() erzeugte Objekte verhalten sich wie Werte der entsprechenden Datentypen – der typeof-Operator gibt jedoch "object" zurück:
Umgekehrt werden Werte der primitiven Typen Number, Boolean und String bei Bedarf automatisch in Objekte der entsprechenden Konstruktorfunktion umgewandelt:
JavaScript ist dynamisch typisiert, das heißt die Zuweisung von Werten an Variablen unterliegt keinen typbasierten Einschränkungen.
Es gibt diverse Erweiterungen von JavaScript, welche eine statische Typisierung auf Wunsch ermöglichen beziehungsweise zwingend erfordern, zum Beispiel TypeScript von Microsoft.
Skripte in einer Webseite: Java Script
JavaScript (!= JAVA!!!) ist objektbasierte Skriptsprache, direkt in HTML integrierbar oder als Ressource integrierbar
Ermöglicht die Client-seitige Ausführung von Skripten, durch Browser interpretiert und umgesetzt, z.B.
Eventhandling, z.B. Validierung von Formulareingaben
Interaktive Menüs, Drag & Drop Funktionen
Aktualisierung von Seitenteilen
In Verbindung mit XML und httpRequest AJAX (später)
Problem: JavaScript ist schwer wartbar
Ist objektbasiert, aber nicht typisiert oder wirklich objektorientiert
Schwer zu organisieren, debuggen und testen
Verhalten von JavaScript in Browsern nicht immer einheitlich
Wiederverwendung von Bibliotheken statt Selbsterstellung von Scripten wann immer möglich!