JavaScript - Eine Einführung (Stefan Bosse) [11.2020]

JavaScript

JavaScript
Some Facts
Werte
Variablen und Ausdrücke
Variablen
Ausdrücke
Kontext
Beispiele
Funktionen
Syntax
Beispiel
Kontrollanweisungen
Bedingte Verzweigun
Mehrfachauswahl
Zählschleifen
Bedingte Schleifen
Arrays
Records
Beispiel
Kombination von Arrays und Records
Objekte (optional)
Beispiel für Objekte
Mathematische Funktionen
Standard Math
Erweiterungen durch math.plugin

Some Facts

Werte

Einfache Werte und Datentypen

 ▸ 
 ✗ 

Variablen und Ausdrücke

Variablen

Achtung: Variablen können einfach on-the-fly durch eine Zuweisung ohne var Schlüsselwort definiert werden. Das sollte vermieden werden da es sich dann um globale (überall sichtbare) variablen handelt! Aber: Um Daten zwischen den Snippets zu teilen müssen globale Variablen verwendet werden.

JavaScript: Variablen und Datentypen

 ▸ 
 ✗ 

JavaScript: Sichtbarkeit von Variablen

 ▸ 
 ✗ 

Wichtig: Eine nicht definierte Variable (also niemals mit var oder über eine Zuweisung eingeführt) liefert entweder einen Fehler wen sie gelesen wird (wie hier im Notebook) oder den Wert undefined!

Ausdrücke

Arithmetical: + - * / % 
Boolean: && ||
Logical: & |
Relational: == < > <= >= !=

Kontext

Achtung: Wird eine Variable ohne Definition mittels der var Anweisung benutzt (auf der linken Seite einer Zuweisung), wird immer einer globale Variable erzeugt!

Beispiele


 ▸ 
 ✗ 


 ▸ 
 ✗ 


Funktionen

Syntax

Definition 1. Funktionsdefinition
function name (par1?, par2?, ..) {
  return expr
}

Beispiel

Folgende Funktion berechnet die mathematische Fakultät über das Konzept der Rekursion:

\[ f(n) = \left\{ {\begin{array}{*{20}{l}} {1,n = 1} \\ {n*f(n - 1),n > 1} \end{array}} \right. \]
JavaScript

 ▸ 
 ✗ 

Aufgabe. Funktionen
\[ f(n) = \left\{ {\begin{array}{*{20}{l}} {n,n \leqslant 1} \\ {f(n - 1) + f(n - 2),n > 1} \end{array}} \right. \]
Fibinacci Funktion

 ▸ 
 ✗ 


Kontrollanweisungen

Bedingte Verzweigun

Definition 2. if-else
if (expression) { is true }
if (expression) { is true } else { is false }
Bedingte Verzweigung

 ▸ 
 ✗ 

Mehrfachauswahl

Definition 3. switch-case
switch (expression) {
  case v1: .. break;
  case v2: .. break;
  ..
  default: ..
}

Nach jedem Fall muss eine break Anweisungen folgen (bzw. Abschluss eines Falls), sonst werden die nachfolgenden Fälle eines ausgewählten Falls auch ausgeführt ("fall through behaviour"). Es sei denn dieses Verhalten ist erwünscht.


Mehrfachauswahl

 ▸ 
 ✗ 

Zählschleifen

Definition 4. for Schleifen (1)
for (init;test;change) {
  ..
}
for (i=a;i<b;i++) {
  ..
}
Aufgabe.
Summenbildung mit Zählscheifen

 ▸ 
 ✗ 


Bedingte Schleifen

Definition 5. while-do Schleifen(2)
while (condition) {
  ..
}

{
  ..
} do (condition)
Bedingte Schleifen

 ▸ 
 ✗ 


Aufgabe.
Schleifentransformation

 ▸ 
 ✗ 


Arrays

Erstes Element eines Arrays hat den Index 0!


Numerische Arrays

 ▸ 
 ✗ 

Beispiele für Array Methoden

 ▸ 
 ✗ 

Beispiel: Dynamische Arrays

 ▸ 
 ✗ 

Aufgabe. Dynamische Erzeugung von Arrays
Dynamische Arrays

 ▸ 
 ✗ 


Records

Definition 6. Records
{
    attribute : value,
    ..
}

Beispiel

Objekte

 ▸ 
 ✗ 

Kombination von Arrays und Records

Arrays und Records und umgekehrt

 ▸ 
 ✗ 

Objekte (optional)

Definition 7. Konstruktorfunktion
-- Definition der Konstruktorfunktion --
function C(par1,..) {
  this.x1=expression;
  ..
}
-- Definition der Prototypen --
C.prototype.methode1 = function (par1,..) {
  this.x1=..
}
C.prototype.methode2 = function (par1,..) {
  this.x1=..
}
..
-- Instanziierung eines Objekts von der Konstruktirfunktion --
var obj = new C(..);
obj.methode1(..)
obj.methode2(..)
..

Beispiel für Objekte

Objekte (2)

 ▸ 
 ✗ 

Mathematische Funktionen

Standard Math

Definition 8. Standard Math (Auswahl)
Math.sin(rad)
Math.cos(rad)
Math.tan(rad)
Math.pow(x,e)
Math.log(x)
Math.sqrt(x)
Math.abs(x)
Math.random()
Math (1)


 ▸ 
 ✗ 

Erweiterungen durch math.plugin

Definition 9. Extended Math (Auswahl)
// Module
Math.Vector.
Math.Matrix.
Math.random.
Math.signal.
// Funktionen
Math.equal(a,b)
Math.distance(p1,p2)
// Array Erweiterungen
array.add(b) // [a0+b0,a1+b1,..]
array.contains(x)
..
Math (2)


 ▸ 
 ✗ 


Created by the NoteBook Compiler Ver. 1.8.3 (c) Dr. Stefan Bosse (Mon Nov 16 2020 12:41:38 GMT+0100 (CET))