JavaScript Magie

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

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

rekursive Iframes

function fuckUp(func){
var id = Math.random();
ifrm = document.createElement("IFRAME");
ifrm.setAttribute("src", window.location.href+"?"+id);
ifrm.style.width = 250+"px";
ifrm.style.height = 250+"px";
ifrm.id = id;
code = document.createElement("script");
code.innerHTML = "("+func.toString()+")("+func.toString()+");";
ifrm.addEventListener('load', () => {document.getElementById(id).contentDocument.body.appendChild(code)}, true);
document.body.appendChild(ifrm);
}
fuckUp(fuckUp);

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

Marc Borkowski Portait
Autor: Marc Borkowski

Moin,
mein Name ist Marc Borkowski. Ich bin in Berlin geboren und habe mich in eine ruhigere Stadt verkrümelt, Wismar. Ich habe mehrere Jahre Erfahrung im Bereich Frontend und bin ausgebildeter Mediengestalter. Aktuell entwickle ich mich zu einem Techlead und werde hier meine Erfahrungen mit euch teilen.

Kontakt

E-Mail: moin@boolie.org | Über mich Seite

Instagram logoLinkedIn LogoYouTube Logo

Schreibe einen Kommentar

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

Kommentare (1)
Jens Vogt

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

klimabewusste Website