Was ist JavaScript?
JavaScript ist eine verbreitete Programmiersprache. Sie wird vor allem genutzt, um dynamische Elemente in Webseiten einzubinden. Dies können aufklappbare Menüs oder Popup-Fenster sein. Ebenso nutzen Webentwickler die Funktionen häufig, um Eingaben von Benutzern zu verarbeiten. In Formularfeldern kann etwa mithilfe der Programmiersprache geprüft werden, ob fehlerhafte oder unlogische Eingaben gemacht wurden.
Üblicherweise wird JavaScript gemeinsam mit der Beschreibungssprache HTML und der Stylesheet-Sprache CSS verarbeitet. HTML sorgt dabei für den Aufbau des Grundgerüsts der Webseite, mittels CSS erfolgt die Formatierung.
Entstehung von JavaScript
Die Programmiersprache JavaScript wurde bereits 1995 veröffentlicht. Entwickler war die Firma Netscape, die Mitte der Neunzigerjahre den seinerzeit sehr bekannten Browser Netscape Navigator vertrieb. Später ging dieser, wie auch die Programmiersprache, in das Projekt Mozilla Firefox über. Anfangs wurde noch der Name LiveScript verwendet. Um von der Popularität der damals schon sehr bekannten Programmiersprache Java zu profitieren, erfolgte dann aber die Umbenennung in JavaScript.
Der US-amerikanische Programmierer Brendan Eich war im Rahmen seiner Tätigkeit für Netscape maßgeblich für die Entwicklung von JavaScript verantwortlich. Der Sprachkern wird bis heute weiterentwickelt. Inzwischen erfolgt dies gemäß des Standards ECMAScript.
Die Verwendung unterliegt keinen Einschränkungen, da die Sprache unter der Open-Source-Lizenz BSD veröffentlicht wurde.
Funktionsweise und Merkmale von JavaScript
Grundsätzlich handelt es sich bei JavaScript um eine vollwertige Programmiersprache. Der Anwendungsbereich ist allerdings auf die Webentwicklung beschränkt. Aus diesem Grund wird beispielsweise zur Erhöhung der Sicherheit auf die Funktion verzichtet, Dateien auf dem PC zu bearbeiten.
Erstellte Programme müssen nicht in Maschinensprache übersetzt werden. Webentwickler können sie einfach als Text in ihre Webseiten einbetten. Die Interpretation erfolgt dann üblicherweise zur Laufzeit durch den Browser. Zudem gibt es inzwischen auch die Möglichkeit, JavaScript-Elemente auf Servern ausführen zu lassen.
Die Einfachheit in der Handhabung ist ein großer Vorteil dieser Programmiersprache. Sie funktioniert plattformübergreifend in nahezu allen aktuellen Browsern wie z.B.:
- Mozilla Firefox,
- Microsoft Edge,
- Google Chrome,
- Opera,
- Apple Safari.
Anwender müssen vorher keine Laufzeitumgebungen oder Interpreter-Software installieren, wie dies etwa bei Java und Python der Fall ist.
Auch für Anbieter von Webseiten bietet dieses Konzept Vorteile. Sie benötigen auf ihren Servern keine zusätzlichen Module für die Ausführung von Skripten. Dies ist bei den Skriptsprachen PHP und Python hingegen notwendig und verteuert üblicherweise den Webspace beim Anbieter.
Clientseitige Anwendung
Mit der clientseitigen Anwendung ist gemeint, dass der Code nur lokal auf dem PC des Anwenders ausgeführt wird. Dies bedeutet, dass dynamisch auf Eingaben reagiert werden kann, ohne Inhalte aus dem Internet nachladen zu müssen. So lassen sich mit JavaScript Aktionen hinterlegen, die ausgeführt werden, wenn ein bestimmter Bereich mit dem Mauszeiger berührt wird. Bei einer Formulareingabe kann auf diese Weise vor dem Absenden geprüft werden, ob alle notwendigen Felder ausgefüllt sind und etwa eine Mailadresse korrekt formatiert wurde.
Auch bei Browser-Spielen erzielt man auf diese Weise eine bessere Reaktionszeit und vermeidet etwa ein Stocken des Programms durch Übertragungsschwierigkeiten.
Serverseitige Anwendung
Gewisse Funktionen können nur zentral vom Server im sogenannten Backend verwaltet werden. Naheliegend sind etwa folgende Anwendungsfälle:
- Authentifizierung von Nutzern durch Benutzername und Passwort,
- Ablage von Nutzereingaben in zentralen Datenbanken,
- Berechtigungen von Nutzern verwalten,
- Weiterverarbeitung von Daten, etwa aus Bestellprozessen,
- Bereitstellung von angefragten dynamischen Inhalten.
Hierfür bietet JavaScript Server-Module zur Erweiterung der ursprünglichen lokalen Möglichkeiten.
Zu den bekanntesten Erweiterungen gehört Node.js. Hierbei handelt es sich um eine Laufzeitumgebung, mit der auch komplexe Routinen umgesetzt werden können. Hierzu zählen etwa aufwändige Content Management Systeme (CMS) und Webapps für Cloud-Plattformen wie Microsoft Azure. Einen Geschwindigkeitsvorteil hat Node.js gegenüber anderen Lösungen durch die asynchrone und parallele Ausführung von Ein- und Ausgaben zwischen Server und Client.
Eine Alternative ist das in Python geschriebene Webframework Django. Dieses bietet ebenso die Anbindung an Datenbanken wie MySQL, Oracle oder SQLite. Insbesondere können hiermit Serverinhalte effektiver verwaltet und dynamisch zur Verfügung gestellt werden.
Sicherheitsaspekte von JavaScript
Der Nachteil des Prinzips, unbekannten Programmcode aus dem Internet herunterzuladen und auf dem eigenen PC auszuführen, ist die fehlende Kontrolle über den Programmablauf. Dies kann zu Sicherheitsproblemen führen. Harmlos, aber lästig sind beispielsweise Popup-Fenster, die oft für Werbeeinblendungen genutzt werden.
Ein konzeptionelles Risiko bleibt, dass JavaScript-Code ohne aktives Zutun des Nutzers ausgeführt werden kann. Für Angreifer ist JavaScript interessant, da es auf sehr vielen Systemen im Internet lauffähig ist.
Andererseits gilt JavaScript immer noch als eine der sichereren Alternativen zur Ausführung von dynamischen Inhalten. Adobe Flash und Java-Plugins haben einen weit schlechteren Ruf, was die Verwundbarkeit angeht.
Zudem sorgen sogenannte Sandbox-Konzepte von Browsern wie Google Chrome für Sicherheit. Diese beschränken die Einflussmöglichkeit des aufgerufenen Programms beispielsweise auf das aktuelle Browserfenster.
JavaScript komplett im Browser zu deaktivieren, dürfte in vielen Fällen dazu führen, dass Webseiten nicht mehr wie gewünscht funktionieren.
Syntax und Einbindung in HTML
Von der äußeren Form her erinnern die Syntax-Regeln von JavaScript an C und an Java.
Charakteristisch sind die Klammerung von Bedingungen und das Markieren von Anweisungsblöcken mittels geschweifter Klammern.
Eine If-Else-Schleife zum Prüfen von Bedingungen wird vereinfacht wie folgt gebildet:
if (BEDINGUNG){
ANWEISUNG;
}
else{
ALTERNATIVE ANWEISUNG;
}
Javascript-Dateien erhalten die Endung „js“. Eine solche Datei kann wiederum in HTML durch die
Script-Tags eingebunden werden.
Alternativ lässt sich Code auch direkt in Script-Tags ausführen.
Die Besonderheit dabei ist, dass durch das sogenannte Document Object Model (DOM) die eigentlich starren Elemente von HTML flexibel verarbeitet werden können. Es ist damit möglich, Elemente ein- und auszublenden und Inhalte zu verändern.
Entwicklung und Ausblick
Die Unterstützung aller gängigen Browser für JavaScript deutet auf eine Zukunftssicherheit für Entwickler hin. Im Tiobe-Index wird JavaScript seit längerer Zeit auf Rang sieben geführt. Andere Rankings wie RedMonk führen die Programmiersprache zwischenzeitlich gar auf Platz 1.
Zudem erfolgt durch die Anbindung an den ECMAScript-Standard eine beständige Weiterentwicklung.