02 JavaScript Übersicht
Codeschreibweise
Die Syntax ähnelt sehr jener von PHP. Daher wird diese Übersicht etwas kürzer gehalten.
Wie in PHP werden alle Anweisungen durch ein Semikolon ;
beendet. Zeilenumbrüche und Leerzeichen sind nicht relevant. Die Gross- und Kleinschreibung wird in JavaScript berücksichtigt! (Case-Sensitive)
JavaScript in HTML
Möchtest du JavaScript in HTML-Code verwenden, umschliesse es mit einem script
-Tag. Das script
-Tag ist innerhalb des body
oder head
Tags zugelassen.
Die Eingabe des type
Attributs ist seit HTML5 optional. Du wirst online jedoch noch zahlreiche Beispiele finden, bei denen dieses vorhanden ist.
JavaScript als externe Datei
Du kannst über das script
-Tag via src
-Attribut auch JavaScript aus externen Dateien einbinden. Der Code in reinen JavaScript-Dateien muss nicht von Tags umschlossen werden.
Performance
Da das Ausführen von JS im Browser das Rendern der Website blockieren kann, sollte alles JS so weit wie möglich ans Ende des Dokuments verschoben werden (optimalerweise direkt vor </body>
).
So kann der Browser die Website zuerst rendern und muss sich erst dann mit der Ausführung des JS-Codes befassen.
Konsolenausgabe
Um eine Ausgabe in die Entwicklerkonsole deines Browser zu machen, nutze console.log
.
console
ist hier das Konsolen-Objekt, welches mehrere Methoden zur Verfügung stellt. Via .
kannst du auf diese Methoden zugreifen.
Variablen
Variablen werden via var
oder seit ES6 mit den Keywords let
/const
definiert. Anders als bei PHP müssen die Variablen nicht mit einem Dollarzeichen beginnen.
Da die let
/const
Keywords noch nicht in allen Browsern unterstützt werden (Stand November 2015), werden wir in unseren Beispielen einfachheitshalber immer das var
Keyword verwenden.
Mit let
definierte Variablen haben einen andern Geltungsbereich wie mit var
definierte. Siehe «Geltungsbereich von Variablen» weiter unten.
Mit const
definierte Variablen können nach ihrer Definition nicht mehr geändert werden (=Konstante).
Booleans
Integer
Float
String
Ein String muss mit doppelten "
oder einfachen Anführungszeichen '
umschlossen werden. Anders als bei PHP gibt es in JS keine Unterschiede zwischen beiden Methoden.
Konkatenation
In JS wird für die Konkatenation von Strings der +
Operator verwendet.
Verkettungen sind auch über mehrere Zeilen möglich. Eine String-Deklaration darf jedoch keine Zeilenumbrüche enthalten.
Seit ES6 gibt es zudem die sogenannten Template-Strings
mit deren Hilfe mehrzeilige Strings einfacher deklariert werden können. Zur Deklaration verwendet man hier Backticks (`).
Parsing von Variablen
Variablen können anders als in PHP nicht direkt in normale Strings eingebettet werden. Es muss immer konkateniert werden. Alternativ müssen Template-Strings verwendet werden.
Arrays
Assoziative Arrays / Objekte
In JavaScript gibt es genau genommen keine Arrays sondern nur Objekte. Dies wird deutlich, sobald ein assoziatives Array mit Schlüssel-Wert-Paaren definiert werden soll.
Anders als bei Arrays werden hier {}
zur Definition verwendet. Schlüssel und Werte werden via :
getrennt.
Der Schlüssel kann hier auch in ''
geschrieben werden. Dies ist jedoch nicht zwingend notwendig.
Der Zugriff auf die einzelnen Objekt-Properties kann jetzt mit .
oder []
-Syntax geschehen.
Standardobjekte
In JavaScript stehen diverse Standardobjekte zur Verfügung. Diese sind das Pendant zu den internen Funktionen von PHP.
Wird beispielsweise ein String definiert, wird dieser als Instanz eines String
Objekts erstellt. Dadurch hat man Zugriff auf die diversen Properties und Methoden dieses Objekts.
Benutzerdefinierte Funktionen
Funktionen in JavaScript werden wie in PHP definiert.
Type-Hints existieren in JS nicht. Standardwerte für optionale Argumente können erst seit ES6 definiert werden.
Geltungsbereich von Variablen
Deklarierte Variablen sind immer in dem Kontext gültig, in dem sie deklariert wurden.
Global definierte Variablen stehen also überall (auch in untergeordneten Funktionen) zur Verfügung.
In Funktionen definierte Variablen sind ausserhalb der Funktion nicht verfügbar.
Wir eine Variable global definiert (via var
) und in einer Funktion verändert, ist die Variable im globalen Geltungsbereich ebenfalls angepasst.
Hoisting
Variablendeklarationen werden von der JS-Engine vor dem Ausführen des eigentlichen Codes durchgeführt. Dieser Umstand nennt sich «Hoisting». So kann eine Variable in JS verwendet werden, bevor sie deklariert wurde.
Dies kann in spezifischen Situationen zu unerwartetem Verhalten führen.
var
vs. let
var
vs. let
Seit ES6 steht neben var
auch das let
Schlüsselwort zur Deklaration von Variablen zur Verfügung. Je nach Schlüsselwort haben die Variablen andere Geltungsbereiche.
var
ist immer für den umgebenden Funktionsblock gültig. let
gilt immer nur für den nächsten «umschliessenden» Block.
Sprachkonstrukte
Operatoren
Vergleichs-Operatoren
Wie in PHP kann auch in JS ein typenschwacher ==
und typenstarker ===
Vergleich durgeführt werden. Die Vergleichsregeln unterscheiden sich jedoch von PHP.
Arithmetische Operationen
Die Arithmetischen Operatoren funktionieren gleich wie in PHP.
Inkrement- bzw. Dekrementoperatoren
Die Inkrement- und Dekrementoperatoren funktionieren gleich wie in PHP.
Kontrollstrukturen
if/then/else
Die if/then/else
Konstrukte funktionieren gleich wie in PHP. Einziger Unterschied ist die Schreibweise von else if
in zwei separaten Wörtern.
Logische Operatoren
Es stehen die gleichen logischen Operatoren wie in PHP zur Verfügung. Die Schreibweisen or
, and
und xor
existieren jedoch nicht.
&&
||
!
Ternärer Operator
Der Ternäre Operator steht auch in JS zur Verfügung.
Die Klammern ( )
sind optional.
while, for
for
und while
funktionieren gleich wie in PHP.
forEach
forEach
steht in JS seit ES5.1 zur Verfügung und ist somit in allen modernern Browsern und IE >= 9 vorhanden.
forEach
wird als Methode auf einem Array-Objekt ausgeführt. Dabei muss eine sogenannte callback
Funktion definiert werden, die für jedes Element aufgerufen wird.
Objekte verfügen über keine forEach
Methode. Hier muss auf die for...in
Syntax zurückgegriffen werden.
Zugriff auf DOM-Elemente
Last updated
Was this helpful?