Inhaltsverzeichnis

Lektion 1: Einführung

JavaScript (kurz JS) ist eine Skriptsprache, die ursprünglich 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… Wikipedia
JavaScript is used by 89.1% of all the websites w3techs.com

Hinweis: Auch wenn der Name es vermuten lässt, hat JavaScript nichts (mehr) mit der Programmiersprache Java zu tun!

Verwendung

JavaScript wird vor allem Client-Seitig eingesetzt und ermöglicht eine direkte Manipulation von HTML-Elementen.

So werden einfache Aufgaben, wie Html-Formulare validieren, EMail-Adressen verschlüsseln oder Dialogfenster anzeigen, heutzutage per JavaScript realisiert.

Sehr wichtig ist mittlerweile auch die Möglichkeit, Aufrufe an den Server zu schicken, ohne dass die Seite neu geladen werden muss (AJAX). Dies ermöglicht zum Beispiel eine Autovervollständigung beim Suchen.

Es existieren sehr viele Erweiterungen / Bibliotheken für JavaScript und bieten so den einfachen Einbau von Bilderslidern, interaktiven Tabellen, Diagrammen oder Animationen.

Funktionsweise

Wie schon erwähnt, wird JavaScript „client-seitig“ im Browser ausgeführt. Im Unterschied zu PHP, welches auf dem Server ausgeführt wird und nur das Ergebnis an den Client zurück gesendent wird.

Abbildung 1.1 zeigt die verschiedenen Schritte, die notwendig sind, um bspw. die Seite von Google aufzurufen.  Abbildung 1.1: Request-Response Modell

  1. Anfrage (Request)
    Eintippen in die Adresszeile des Browsers sendet eine Anfrage an den entsprechenden Server.
  2. Server
    Der Server nimmt die Anfrage entgegen und entscheidet, was zu tun ist. Bspw. führt ein PHP-Script aus und generiert daraus ein HTML-Dokument.
  3. Antwort (Response)
    Dieses HTML-Dokument ist das Ergebnis der Anfrage und wird an den Client geschickt. Die Antwort kann neben HTML-Dateien auch aus anderen Dateitypen wie CSS, Bildern, aber auch JavaScript-Dateien bestehen.
  4. Client (Browser)
    Je nach Dateityp generiert der Browser aus der Antwort irgendeine Form von Darstellung (Zeigt bspw. die HTML-Seite an). Wird eine JavaScript-Datei geliefert, wird diese sofort im Browser ausgeführt.

Vorteile:

Nachteile:

Sicherheit

Über das Internet werden im Browser teilweise sehr wichtige und kritische Daten (Bankdaten, EMail-Login usw.) verschickt. Hätte nun eine aufgerufene Seite Schadcode, so könnte dieser u.U. Daten ausgelesen und versenden. Damit dies nicht (so leicht) passiert, wird JavaScript in einer sogenannten SandBox ausgeführt. Das bedeutet, dass die Ausführung isoliert geschieht und kein Zugriff auf andere Tabs im Browser oder gar das Dateisystem möglich sind.

Trotzdem kann JavaScript nervig oder sogar gefährlich sein. So kann JavaScript ungefragt PopUps anzeigen, direkt auf andere Seiten weiterleiten, das Browserfenster schließen oder es kann ungewollt Schadcode enthalten. Einige dieser Sicherheitslücken sind mittlerweile von neueren Browsern geschlossen geworden. In älteren Browsern besteht das Problem weiterhin (Also immer Updaten!).

Geschichte

Brendan Eich entwickelte um 1995 die Scriptsprache „LiveScript“. Diese wurde in den Browser der Softwarefirma Netscape eingebettet und diente dort u.a. für die Überprüfung von Formulareingaben. Zusammen mit Sun Microsystems wurde die Interaktion zwischen JavaApplets und LiveScript forciert - daher der neue Name JavaScript.

JavaScript entwicklte sich stetig weiter und kann bspw. auf Bilder zugreifen. Microsoft veröffentlichte 1996 den ersten JavaScript-fähigen Internet Explorer.

Die European Computer Manufacturers Association veröffentlichte in Zusammenarbeit mit Netscape einen ersten Standard ECMA-262 (ECMA-Script). Diese wurde knapp ein Jahr später zur ISO-Norm ISO/IEC 16262:1998 Information technology – ECMAScript language specification.

Seitdem kommen immer wieder neue Versionen auf den Markt…

Beispiel: Hello World

JavaScript Code kann direkt in eine HTML-Seite im <head>-Bereich eingebettet werden.

<html>
  <head>
    <script>
      ... dein Code hier ...
    </script>
  </head>
  <body>
    ... weitere HTML-Elemente ...
  </body>
</html>  

Dieser Code-Schnipsel erzeugt eine Meldung im Browserfenster:

<script>
  alert("Hello World!");
</script>

Dieser Code erzeugt eine Log-Meldung und ist nur in der JavaScript-Konsole des Browsers zu sehen:

<script>
  console.log("Hello World");
</script>

Die JavaScript Konsole

In jedem modernen Browser (FireFox, Chrome) oder auch dem „Internet Explorer“ finden sich mittlerweile Entwickler-Tools. Hier werden Informationen zu HTML, CSS oder Netzwerkverbindungen angezeigt. Gestartet wird sie in der Regel mit der Taste „F12“.

In den Entwickler-Tools ist immer auch eine JavaScript Konsole enthalten. Dort werden Debug-Meldungen (Fehler, Warnungen oder Infos) bei der JavaScript-Ausführung der Seite angezeigt.

Weiterhin gibt es eine Live-Konsole, wo direkt JavaScript-Code ausgeführt werden kann. Bei Problemen oder Nichtausführung von JavaScript-Code, ist die Konsole immer ein guter Einstiegspunkt zur Fehlersuche.

JavaScript Konsole im FireFox JavaScript Konsole im FireFox: Die Abbildung zeigt einen typischen Tippfehler („loog“ statt „log“) und die Konsole gibt mir Hinweise, was nicht funktioniert.

Der Code kann entweder mit einem Klick auf den Auführen-Button oder der Tastenkombination Strg+Enter ausgeführt werden.

Zusammenfassung

In dieser Lektion haben wir etwas über die Entstehung von JavaScript und über die Ausführung im Browser gelernt. Weiterhin haben wir Vor- und Nachteile beim Einsatz von JavaScript gesehen. Wir haben weiterhin die Entwicklerkonsole im Browser kennengelernt.

Aufgabe

  1. Öffnet einen Browser eures Vertrauens
  2. Untersuche deine Lieblingsseite mit der JavaScript Konsole
  3. Macht euch mit der Entwicklerkonsole und ihren Funktionen vertraut
  4. Erstellt in eurem Arbeitsverzeichnis einen Ordner „JavaScript/Lektion_1“
    und dort eine Datei „index.html“ aus dem „Hello World“ Beispiel
  5. Öffnet die HTML Datei im Browser und führt das „Hello World“ Beispiel aus

Lektion 2: JavaScript Grundlagen >>