kurse:ef05a-2021:js:jsbasics

Variablen und Stringinterpolation

Variablennamen in JavaScript folgen den gleichen Regeln wie in Python. Vor der ersten Verwendung sollten die Variablen entweder mit const oder let deklariert werden. Ohne Deklaration handelt es sich immer um globale Variablen, was vermieden werden sollte. Die Variablen sind nur in dem Block gültig, in dem Sie deklariert wurden. Ein Block steht zwischen { und } und umschliesst z.B. den Funktionskörper, For-Schlaufe, If o.ä.

Achtung: Funktionen sind auch nur Variablen (wie in Python auch).

// beispiel ist eine globale Variable
function beispiel() {
  const pi=3.14;
  let d = 15;
  // Backticks, damit ${ausdruck} evaluiert wird
  console.log(`Ein Kreis mit Durchmesser ${d} hat den Umfang ${pi*d}`);
  d = 7;
  console.log(`Ein Kreis mit Durchmesser ${d} hat den Umfang ${pi*d}`);
  pi = 2; // Fehler
}
 
// Das ist ein Kommentar
// Funktion aufrufen
beispiel();
  • Testen und verstehen Sie obiges Beispiel (inklusive einbinden in eine HTML-Datei).

for loop

Der for-loop besteht aus 3 Elementen in einer Klammer und einem zu wiederholenden Codeblock.

  • Das erste Element ist die Initialisierung, typischerweise let i=0. Die mit let deklarierte Laufvariable existiert nur im Block. Danach folgt ein ;.
  • Das zweite Element ist die Bedingung, die vor der Wiederholung geprüft wird, z.B. i<10. Danach folgt ein ;.
  • Das dritte Element ist eine Anweisung, die jeweils nach der Wiederholung ausgeführt wird, z.B. i++, was für i=i+1 steht.
for (let i=0; i<10; i++) {
        console.log(`${i} im Quadrat ist ${i*i}`);
}

if, else

  • Die Bedingung steht immer in Klammern.
  • Anstatt and, or und not wird &&, || und ! verwendet. (Wie in vielen anderen Programmiersprachen.)
  • Ein elif gibt es nicht per se, kann aber einfach als else if geschrieben werden.
for (let i=0; i<2; i++) {
        let a = (i==1);  // a will be true or false
        for (let j=0; j<2; j++) {
                b = (j==1); // b will be true or false
                console.log(`a=${a}, b=${b} (i=${i}, j=${j})`);
                if (a && b) {
                        console.log("a and b are both true");
                } else {
                        console.log("at least one of a and b is false");
                }       
                if (a || b) {
                        console.log("at least one of a or b is true");
                } 
        }
}

Funktionen

function ausgabe(a,b) {
        console.log(`a=${a}, b=${a}`);
}
 
// Der erste Parameter f soll eine Funktion sein.
function advanced(f,i) {
        console.log(`f(${i})=${f(i)}`);
}
 
function makeAdder(add) {
        // Closure, the variable add is captured
        return x => x+add;
}
 
function demo() {
        // Lokale Variable, existiert nur in der Funktion demo
        let quadrat = function(x) {
                return x*x;
        };  // Strichpunkt weil die ganze Anweisung eine Variablendeklaration ist.
        console.log("ausgabe(32, quadrat(32));");
        ausgabe(32, quadrat(32));
        console.log("advanced(quadrat, 32);");
        advanced(quadrat, 32);
        console.log("advanced(function(x) { return x*x*x;}, 10); // Anonyme Funktion als Parameter");
        advanced(function(x) { return x*x*x;}, 10); // Anonyme Funktion als Parameter
        console.log("advanced(x => x*x*x, 10);");
        advanced(x => x*x*x, 10);  // Alternative Notation für eine Anonyme Funktion
 
        console.log("let add5 = makeAdder(5);");
        let add5 = makeAdder(5);
        console.log(`add5(50)=${add5(50)}`);
}
 
demo();
  • kurse/ef05a-2021/js/jsbasics.txt
  • Last modified: 2022/02/10 08:40
  • by Ivo Blöchliger