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.

<div>
    <p>Etwas HTML...</p>
</div>

<script>
    var name = 'Robert Pattinson';
</script>

Die Eingabe des type Attributs ist seit HTML5 optional. Du wirst online jedoch noch zahlreiche Beispiele finden, bei denen dieses vorhanden ist.

<script type="text/javascript">...</script>

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 (`).

Browser-Support für Template-Strings

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

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.

Siehe https://dorey.github.io/JavaScript-Equality-Table/

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?