JavaScript
JavaScript ist ein wenig wie Englisch: oberflächlich scheint es eine sehr einfache Sprache zu sein, und fast jeder kann kleine Programme mit JavaScript schreiben. Aber wie mit dem Englischen ist das sehr trügerisch. Wir werden hier aber nur kurz die oberflächlichen Aspekte der JavaScript Sprache ansprechen. Eine kurze Warnung: obwohl JavaScript das Wort "Java" im Namen trägt, hat es eigentlich gar nichts mit Java zu tun.
.
HTML
Das JavaScript das uns interessiert ist jenes das im Browser läuft. Deswegen gehen wir immer davon aus, dass es irgendeine HTML Datei gibt die entweder den JavaScript Code direkt enthält, oder einen Link auf eine JavaScript Datei.
Im Prinzip können wir JavaScript sowohl im Body Teil des HTMLs schreiben,
<html>
<head>
</head>
<body>
<script type="text/javascript">
document.write("This message is written by JavaScript");
</script>
</body>
</html>
als auch im Header:
<html> <head> <script type="text/javascript"> function message() { alert("This alert box was called with the onload event"); } </script> </head> <body onload="message()"> </body> </html>
Bevorzugt ist letzteres, aber im Prinzip kommt es wie immer auf die genauen Umstände an. Das Problem mit dem direkten Einfügen von Code ist aber allgemein, dass man ihn nicht wiederverwenden kann. Deswegen ist es eigentlich bevorzugt das JavaScript in eine externe Datei auszulagern:
<head>
<script type="text/javascript" src="myJavaScript.js"></script>
</head>
<body>
</body>
</html>
Die kann dann nämlich auch in anderen Seiten wiederverwendet werden.
.
Basics
JavaScript ist dem Augenschein nach sehr ähnlich zu Java oder anderen Programmiersprachen. So gibt es Statements, wie z.B.
document.write("Hello Dolly");
und auch Variablen,
var x; var carName = "Mini";
Aber vieles ist in JavaScript optional: so sind die Strichpunkte am Ende eine Statements optional, und auch die Deklaration ist optional. Also auch
y = x - 5 carName2 = "Mercedes"
ist vollkommen korrekt. Auch sehen wir keine Datentypen: JavaScript ist "weakly typed", d.h. die Datentypen werden zur Laufzeit bestimmt. Das ist zwar ganz praktisch, aber nicht ganz ungefährlich.
In JavaScript gibt es auch Funktionen und Objekte, allerdings keine wirklichen Klassen. Was wirklich toll ist, dass wir Funktionen auch basierend auf Events aufrufen können, z.B., verwenden wir im Services Kapitel den onclick Event eines Links,
<body> <a href="#" onclick="sendGetRequest('service/highscores/'); return false;"> GET</a> <span id="responseGET"> </span><br/> </body>
um JavaScript auszuführen. Und JavaScript kann auf HTML Elemente zugreifen, diese verändern, sogar neu kreiiren und existierende löschen. Z.B., würde das JavaScript
document.getElementById("responseGET").innerHTML = "hi there";
in dem <span> Tag oben den Text "hi there" einfügen.
Mit dieser kleinen Einführung und unseren existierenden Java Kenntnissen, müssten wir jetzt eigentlich den JavaScript Code den wir an verschiedenen Stellen im Buch verwenden verstehen können.
.
Referenzen
Wenn es um das klassische JavaScript geht, also keine Libraries, dann ist der Klassiker von David Flanagan wohl immer noch eine gute Quelle der Inspiration. Natürlich die papierlose Generation möchte auch bedient werden, hier sollte wie immer W3Schools nützliche Dienste erweisen.
[1] JavaScript: The Definitive Guide von David Flanagan
[2] JavaScript Tutorial - W3Schools, www.w3schools.com/js/
.