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
Autor: Marc Borkowski

Ich bin in Berlin geboren und habe mich in eine ruhigere Stadt verkrümelt, Rostock. Ich habe mehrere Jahre Erfahrung im Bereich Frontend und bilde mich aktuell im grafischen Bereich weiter. Meine Zukunft sehe ich beim gestalterischen Web.

Kontakt

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

Twitter logoInstagram logoYouTube Logo

Schreibe einen Kommentar

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

Kommentare anschauen
Kommentare (1)
Jens Vogt

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