// Normale Funktionsdeklaration function add(a, b) { return a + b; } console.log("Normale Funktion:", add(2, 3)); // Anonyme Funktion const multiply = function(x, y) { return x * y; }; console.log("Anonyme Funktion:", multiply(4, 5)); // Arrow Function const subtract = (a, b) => a - b; console.log("Arrow Function:", subtract(10, 3)); const square = x => x * x; console.log("Quadrat:", square(6)); const greet = (name) => { return "Hallo " + name; }; console.log(greet("Hans")); // Funktionen als Parameter (Callbacks) function doMath(a, b, operation) { return operation(a, b); } // Übergabe einer anonymen Funktion console.log("Callback anonym:", doMath(3, 4, function(x, y) { return x + y; })); // Übergabe einer Arrow Function console.log("Callback arrow:", doMath(3, 4, (x, y) => x * y)); // Higher-Order Functions mit Arrays (map) let zahlen = [1, 2, 3, 4, 5]; // Mit anonymer Funktion let verdoppelt = zahlen.map(function(n) { return n * 2; }); console.log("Verdoppelt (anonym):", verdoppelt); // Mit Arrow Function let verdoppeltArrow = zahlen.map(n => n * 2); console.log("Verdoppelt (arrow):", verdoppeltArrow);