JavaScript Magie

JavaScript Sammlung Teaser
Marc Borkowski
Datum
05.10.2019

Kleine Sammlung was JavaScript so alles kann.

Funktion als return

function Samstag() {
    return () => alert("Moin");
}
Samstag()();
function startHealthCheck() {
  const id = setInterval( () => console.log("i'm alive", 200) );
  return () => clearInterval(id);
}

const stopIt = startHealthCheck();
setTimeout(() => stopIt(), 3000);

danke an https://twitter.com/nilshartmann

Funktion als Parameter mit zusätzlichen Argumenten

function Sonntag(f) { 
  return (...args) => {
    console.log("called", args);
    let result = f(...args);
    console.log("called", args, ", returned", result);
    return result;
  };
}
Sonntag(Math.min)(3, 2, 1)

Funktionen Zwischenspeichern

let Montag = () => {
  console.log("Moin");
}

let MontagClone = Montag;

Montag = () => {
  console.log("Hello");
  MontagClone();
}

Montag();
Montag = MontagClone;
Montag();

rekursive Funktionen

function factorial(n) { 
  if (n == 0) { 
    return 1; 
  } else { 
    return factorial(n - 1) * n; 
  } 
}

factorial(8)

Array Wandler

const Dienstag = (...nummern) => (nummern);
Dienstag(1,2,3);
[1,2,3]

Summe der Argumente multipliziert mit Argument

const Mittwoch = a => { return (...args) => { return a * args.reduce((b, c) => b + c) }};
Mittwoch(4)(10,15);
100

Rekursion mit abbruch Funktion

const a = b => { 
  return c => {
    return (c(b)) ? a(b * b)(c) : b
  }
};

Easymode

const func = function(number) { 
  return function(argFunc) {
    if(argFunc(number)) {
      return func(number * number)(argFunc);
    } else {
      return number;
    }
  }
};
func(5)(function(number){
  return number < 50
});
625

Hardmode

const a = b => c => (c(b)) ? a(b * b)(c) : b;
a(5)(b => b < 50);
625

Danke an Baller Hans.

Hast du noch ein lustiges Script das hier aufgeführt werden sollte? Kommentar bitte

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Kommentare
    Jens Vogt
    11.10.2019

    Interessante Sammlung hast du da, da lernt man was bei. Danke!