Was ist JavaScript?

JavaScript ist eine objektorientierte Programmiersprache und eine dynamische, nicht typisierte Hochsprache, die in der ECMAScript-Sprachspezifikation standardisiert ist. 

Zusammen mit der Hypertext Markup Language (HTML) und den Cascading Style Sheets (CSS) ist JavaScript eine sehr wichtige Technologie für Web Anwendungen wie Webseiten und WebApps. 

Seit wann gibt es JavaScript?

JavaScript wurde Beginn der 90er Jahre von Netscape entwickelt um Webseiten mit dynamischen Inhalten nutzbar zu machen. Inzwischen wird JavaScript von jedem Webbrowser unterstützt. 

JavaScript ist eine eigenständige Programmiersprache und hat außer der Ähnlichkeit des Namens nichts mit der Programmiersprache Java gemein und ist keine Java basierte Skriptsprache sondern eine vollwertige, objektorientierte Programmiersprache.

Als clientseitige Programmiersprache ist JavaScript eine der Kerntechnologien des World Wide Web. 

Wozu nutze ich JavaScript?

Typische Beispiele für den Einsatz von JavaScript waren anfangs die Erstellung interaktiver Effekte auf Webseiten und die Validierung von Formulardaten auf Websites. Seitdem wurde eine Reihe von Bibliotheken in JS geschrieben, wie z. B. jQuery.

JavaScript-Source-Code am Beispiel einer JavaScript-Library zur Base64 Encodierung

JavaScript-Source-Code am Beispiel einer JavaScript-Library zur Base64 Encodierung

JavaScript für clientseitige als auch serverseitige Softwareentwicklung

Inzwischen hat sich JavaScript sehr stark weiterentwickelt. JavaScript-Entwickler*innen haben mit diversen Bibliotheken und Frameworks dazu beigetragen JavaScript auch außerhalb von Webbrowsern nutzbar zu machen. 

Heute kannst Du JavaScript sowohl für die clientseitige als auch für die serverseitige Entwicklung verwenden.

Interaktive Webseiten und reaktive WebApps

Moderne WebApps und reaktive Technologien ermöglichen heute interaktive Webseiten und WebApps auf Basis von JavaScript. Hierzu kannst Du JavaScript-Frameworks wie Vue.js nutzen.

Damit kannst Du als  Entwickler*in JavaScript dazu verwenden dynamisch auf Nutzerinteraktionen zu reagieren. Dynamische Nutzerinteraktion wird auch als reaktives Verhalten einer Website oder WebApp bezeichnet.  

User Experience und Usability mit JavaScript verbessern

Dynamisches JavaScript ermöglicht die Aktualisierung eingebundener Elemente wie beispielsweise Social Media Feeds oder eine interaktive Karte zur Navigation von der aktuellen Position des Nutzers zu einem definierten Navigationsziel. 

JavaScript-Funktionen verbessern somit die Benutzerfreundlichkeit einer Website. 

Wie funktioniert JavaScript?

Auch JavaScript funktioniert wie alle anderen Programmiersprachen indem die Programmbefehle und der Quellcode in Maschinencode übersetzt wird, den das jeweilige Betriebssystem ausgeführen kann. 

Was ist die JavaScript-Engine?

Eine JavaScript-Engine ist ein Computerprogramm, das JavaScript-Code ausführt. Die ersten JavaScript-Engines waren lediglich Interpreter, aber alle modernen Engines verwenden Just-in-Time- oder Laufzeitkompilierung, um die Leistung zu verbessern.

Dabei wird der JavaScript-Code interpretiert, so dass die JavaScript-Engine den JavaScript-SourceCode die Umwandlung in Maschinensprachcode übernimmt. Im Gegensatz dazu nutzen andere Programmiersprachen hierzu einen Compiler, nutzen also eine konzeptionelle Trennung und führen die Kompilierung in einem gesonderten Schritt durch. 

JavaScript kann sowohl client- als auch serverseitig eingesetzt werden. Bei client-seitiger Verwendung kann JavaScript auf Benutzeraktionen reagieren. Diese Einschränkung wurde lange Zeit mit Technologien wie Ajax kompensiert um dynamische Webanwendungen und Server Aktionen ohne Antwort-Daten zu ermöglichen. 

Bei serverseitigem JavaScript befindet sich die JavaScript-Engine direkt auf dem Server.

In solchen Backendanwendungen kann eine serverseitige JavaScript-Funktion direkt auf die Datenbank zugreifen, unterschiedliche logische Operationen durchführen und somit auf verschiedene vom Betriebssystem des Servers ausgelöste Ereignisse reagieren. Der größte Vorteil einer solchen serverseitigen Skripterstellung besteht darin, dass der Client das reaktive  Antwortverhaltung einer Websiteanwendung anhand funktionaler Anforderungen und der dazu zur Verfügung stehenden Zugriffsrechte ausgestalten kann. 

Was ist dynamisches JavaScript?

Dynamisches Verhalten bedeutet die Fähigkeit, die Anzeige der Webseite zu aktualisieren, um bei Bedarf neue Inhalte zu generieren. Der Unterschied zwischen clientseitigem und serverseitigem JavaScript liegt in der Art und Weise, wie JavaScvript neue Inhalte erzeugt. Serverseitiger Code erzeugt dynamisch neue Inhalte, indem dieses Konzept die Logik einer Anwendung nutzt und dazu auch Daten direkt in der Datenbank ändern darf. 

Clientseitiges JavaScript dagegen generiert dynamisch neue Inhalte innerhalb des Browsers, wobei es ausschließlich die implementierte Logik der Benutzeroberfläche des Browsers nutzt. Hierbei können auch nur die bereits im BrowserClient befindlichen Webseiteninhalte verändert werden. Beide Methoden haben direkte Auswirkung auf die Softwarearchitektur, die Anwendungslogik und das dazu angebundene Sicherheitskonzept. 

Neben der Implementierung dynamischer JavaScript-Funktionen besteht ein weiterer Unterschied in den nutzbaren Ressourcen, auf die der Code zugreifen kann. Auf der Seite des Clients steuert der Browser die Laufzeitumgebung von JavaScript. Der Code kann nur auf diese laufzeitgebundenen Ressourcen zugreifen, die der Browser ihm gestattet. Dadurch ist gewährleistet, dass ein Browser auch nur dann Inhalte auf eine lokale Festplatte des Clients schreiben darf, wenn der Nutzer dies ausdrücklich – bspw. per Mausklick auf eine Download-Schaltfläche – erlaubt. Serverseitige JavaScript-Methoden hingegen können bei Bedarf auf alle Ressourcen des Servers zugreifen. Beide Methoden erfordern entsprechende Schutzmaßnahmen. 

Welche Eigenschaften hat JavaScript?

JavaScript-Code ist leichtgewichtig und wenig rechenintensiv. Diese Eigenschaft ermöglicht Dir als Softwareentwickler*in JavaScript-Anwendungen auch für leistungsstarke mobile Anwendungen zu nutzen. 

Genauso kannst Du mit JavaScript-Frameworks für solide Backend-Anwendungen und Cloud-Infrastrukturen nutzen. 

Serverseitige JavaScript-Bibliotheken realisieren effiziente Streaming-Anwendungen, weil diese Funktionen für eine kontinuierliche Kommunikation zwischen dem Client und dem Server unterstützen. 

Die Eigenschaften von JavaScript eigenen sich ideal um Online-Anwendungen zur interaktiven Zusammenarbeit in agilen Teams zu schaffen. 

Zahlreiche Softwareanwendungen die eine hohe Eingabe- und Ausgabeintensität haben, sind mit JavaScript äußerst performant, wenn die Softwarearchitektur grundlegend dafür ausgerichtet ist. Auch Browserbasiertes Online-Games mit komplexen visuellen Rendering von 2D und 3D animierter Grafik ist mit JavaScript-Bibliotheken möglich. 

Asynchrones JavaScript & Promises 

JavaScript beherrscht asynchronen Datentransfer.

Asynchrones JavaScript ist ein in der JavaScript-Programmierung fortgeschrittenes Thema, dass grundlegende Erfahrungen in der JavaScript-Programmierung erfordert.

Bei der asynchronen Programmierung handelt es sich um eine Technik, die es einem Programm ermöglicht, eine potenziell lang laufende Aufgabe zu starten und dennoch auf andere Ereignisse zu reagieren, während diese Aufgabe ausgeführt wird, anstatt warten zu müssen, bis diese Aufgabe beendet ist. Sobald die Aufgabe beendet ist, wird dem Programm das Ergebnis präsentiert.

Als asynchrone Programmiersprache gibt es in JavaScript das Verhalten einer synchronen Programmierung zu emulieren. So existiert in JavaScript das Konzept der Promises als speziell für JavaScript geschaffenes Konzept um das synchrone Verhalten zu ermöglichen. 

Hier erfährst Du wie Du Promises in JavaScript nutzen kannst.