Free Online Code Editor
Function declarations, expressions, and arrow functions.
// Function declaration (hoisted)
function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet("Alice"));
// Function expression
const add = function(a, b) {
return a + b;
};
console.log(add(5, 3));
// Arrow function
const multiply = (a, b) => a * b;
console.log(multiply(4, 5));
// Arrow function with body
const calculate = (a, b) => {
const sum = a + b;
const product = a * b;
return { sum, product };
};
console.log(calculate(3, 4));
// Default parameters
function createUser(name, role = "user") {
return { name, role };
}
console.log(createUser("Alice"));
console.log(createUser("Bob", "admin"));
// Rest parameters
function sum(...numbers) {
return numbers.reduce((total, n) => total + n, 0);
}
console.log(sum(1, 2, 3, 4, 5));
// Spread operator
const args = [1, 2, 3];
console.log(sum(...args));
// IIFE (Immediately Invoked Function Expression)
(function() {
console.log("I run immediately!");
})();
// Arrow function IIFE
(() => {
console.log("Arrow IIFE!");
})();Function declarations are hoisted. Arrow functions are concise and don't bind their own this. Use default params and rest/spread operators.