HTML und XML werden als deklarative Sprachen bezeichnet. Es handelt sich hierbei nicht um sog. Programmiersprachen. Diese sind vielmehr Befehlssprachen oder imperative Sprachen_.
Javascript …
Javascript ist eine schwach typisierte Sprache (weakly typed). Es gibt folgende sieben Datentypen:
Literale sind konstante Ausdrücke eines bestimmten Typs.
/[+-]?[0-9]+/
/0[xX][0-9a-fA-F]+/
/[+-]?[0-9]*\.?[0-9]*([eE][+-]?[0-9]+)?/
/(".*")|('.*')/
/(true|false)/
/{(name:expr,)*(name:expr)?}/
/\[(expr,)*expr?\]/
Variablen (Bezeichner) sind Symbole für den Inhalt von Speicherbereichen in einem Programm. Diese Speicherbereiche werden gemäss des zugewiesenen Datentyps interpretiert.
/[a-zA-Z_$][[a-zA-Z0-9_$]*/
gehorchen. (Ab Javascript 1.5 sind auch Unicode-Zeichen zugelassen).undefined
.var
deklariert oder definiert werden.
var pi=3.14, s="Hallo", u; var arr = [24, 35, -48], obj = {mat_nr: 1996746930, name: "Müller, Elfriede"}; var pi2 = 2*pi, piroot = Math.sqrt(pi);
Operatoren führen eine Operation mit einem oder mehreren Operanden durch.
@X
X @ Y
X ? Y : Z
Operator type | Operators |
member | . [] |
call / create instance | () new |
negation/increment | ! ~ - + ++ - - typeof void delete |
multiply/divide | * / % |
addition/subtraction | + - |
bitwise shift | << >> >>> |
relational | < <= > >= in instanceof |
equality | == != === !== |
bitwise-and | & |
bitwise-xor | ^ |
bitwise-or | | |
logical-and | && |
logical-or | || |
conditional | ?: |
assignment | = += -= *= /= %= <<= >>= >>>= &= ^= |= |
comma | , |
Die Operatoren in der Tabelle besitzen abnehmende Priorität, d.h. Operatoren in der ersten Zeile haben die höchste und in der letzten Zeile die niedrigste Priorität.
[Quelle: MozillaDeveloper Center]
8*5 + 2
) x = 98%50 - 6
)var s = "hallo", vocals=0; for (var i=0; i<s.length; i++) { switch (s.charAt(i)) { case "a": case"A": case "e": case"E": case "i": case"I": case "o": case"O": case "u": case"U": vocals++; break; default: break; } } window.alert(vocals + " Vokale gefunden!");
if … else
if (bedingung) { anweisung* } else { anweisung* }
switch
switch(ausdruck) { case literal1: anweisung* break; ... case literalN: anweisung* break; default: anweisung* break; }
do … while
do { anweisung* } while (bedingung);
for
for (initialisierung; bedingung; inkrementierung) {
anweisung*
}
for … in
for (eigenschaft in object) { anweisung* }
while
while (bedingung) {
anweisung*
}
// Dies ist ein *einzeiliger* Kommentar var x = 42; /* Und nun ein mehr- zeiliger Kommentar */
return
zurückliefern. function name(argument*) { anweisung* }
Beispiel:
function TagPreis(artikel) { return 4.90; } function NachtPreis(artikel) { return 7.90; } var hour = 19, Preis = hour > 20 ? TagPreis : NachtPreis; Preis("bier");
Javascript selbst stellt nur einige wenige Objekte zur Verfügung
(Array, Boolean, Date, Function, Global, Math, Number, RegExp, String)
Beispiel:
// static circle object var circle = { x:25, y:35, r:10, color:"green", length: function() { return 2*Math.PI*circle.r; } area: function() { return Math.PI*circle.r*circle.r; } }; window.alert(circle.area()); // circle constructor function Circle(x, y, r, color) { this.x = x; this.y = y; this.r = r; this.color = color; } Circle.prototype = { length: function() {return 2*Math.PI*this.r; } area: function() {return Math.PI*this.r*this.r; } }; var c1 = new Circle(20,30,5,"red"), c2 = new Circle(120,30,7,"blue");
Es gibt genau drei Möglichkeiten, Javascript Programmcode in HTML und XML einzubinden.
Beispiel:
<html> <head> <title>Javascript Einbindung</title> <script type="text/javascript" src="extern.js"> </script> <script type="text/javascript"> var a = 3, z = 14*a; function init() { /* ... */ } ... </script> </head> <body onload="init();"> <!-- ... --> </body> </html>
Eine Javascript Anweisung wird
Beispiel: Beispiel:
<html> <head> <title>Javascript Einbindung</title> <script type="text/javascript" src="extern.js"> </script> <script type="text/javascript"> var c = 2 + 2 + "2"; </script> </head> <body onclick="alert("84"*1/2);"> <script type="text/javascript"> document.write(23%8*6); </script> <!-- ... --> </body> </html>