Ir al contenido

Functions

Esta página aún no está disponible en tu idioma.

Prerequisites:

Functions are reusable blocks of code that perform specific tasks.

function greet(name) {
return `Hello, ${name}!`;
}
greet("Alice"); // "Hello, Alice!"
const greet = function(name) {
return `Hello, ${name}!`;
};
// Full syntax
const greet = (name) => {
return `Hello, ${name}!`;
};
// Concise syntax (implicit return)
const greet = (name) => `Hello, ${name}!`;
// Single parameter (no parentheses needed)
const double = n => n * 2;
// No parameters
const sayHi = () => "Hi!";
function greet(name = "Guest") {
return `Hello, ${name}!`;
}
greet(); // "Hello, Guest!"
greet("Alice"); // "Hello, Alice!"
function sum(...numbers) {
return numbers.reduce((a, b) => a + b, 0);
}
sum(1, 2, 3, 4); // 10
function createUser({ name, age, role = "user" }) {
return { name, age, role };
}
createUser({ name: "Alice", age: 30 });
// Single value
function add(a, b) {
return a + b;
}
// Multiple values (via object)
function getStats(numbers) {
return {
min: Math.min(...numbers),
max: Math.max(...numbers),
avg: numbers.reduce((a, b) => a + b) / numbers.length
};
}
const { min, max, avg } = getStats([1, 2, 3, 4, 5]);

Functions that take or return other functions:

// Function as parameter
function repeat(fn, times) {
for (let i = 0; i < times; i++) {
fn(i);
}
}
repeat(i => console.log(`Iteration ${i}`), 3);
// Function as return value
function multiplier(factor) {
return (number) => number * factor;
}
const double = multiplier(2);
double(5); // 10

Functions remember their lexical scope:

function counter() {
let count = 0;
return {
increment: () => ++count,
decrement: () => --count,
getCount: () => count
};
}
const myCounter = counter();
myCounter.increment(); // 1
myCounter.increment(); // 2
myCounter.getCount(); // 2
  • Learn Arrays to work with collections of data
  • Jump to Async JS to handle asynchronous operations