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
  }
};

Mit besserer Bennenung:

const func = number => { 
  return argFunc => {
    return (argFunc(number)) ? func(number * number)(argFunc) : number
  }
};
func(5)(number => number < 50);
625

Eine Iteration weniger ausführen:

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

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.