TechLead
Lección 6 de 16

Funciones

Crea lógica reutilizable con entradas y salidas.

Resumen Rápido

Las funciones empaquetan lógica para que puedas llamarla muchas veces. En JavaScript, las funciones son valores, lo que significa que puedes almacenarlas en variables, pasarlas como argumentos y devolverlas desde otras funciones. Esto hace a JavaScript altamente flexible para patrones como callbacks y funciones de orden superior.

¿Qué es una Función?

Una función es un bloque de código reutilizable que:

  1. Tiene un nombre (generalmente)
  2. Puede aceptar entradas (parámetros)
  3. Realiza una tarea
  4. Puede devolver una salida

Declaración de Función

La forma tradicional de crear una función:

function greet(name) {
  return "Hello, " + name + "!";
}

const message = greet("Alice"); // "Hello, Alice!"

Expresión de Función

Almacena una función en una variable:

const greet = function(name) {
  return "Hello, " + name + "!";
};

Funciones Flecha (ES6+)

Sintaxis moderna y concisa:

// Full arrow function
const greet = (name) => {
  return "Hello, " + name + "!";
};

// Shorthand for single expression
const greet = (name) => "Hello, " + name + "!";

// Single parameter - parentheses optional
const double = n => n * 2;

Parámetros y Argumentos

// Parameters are placeholders
function add(a, b) {
  return a + b;
}

// Arguments are actual values
add(5, 3); // 5 and 3 are arguments

Parámetros por Defecto

function greet(name = "Guest") {
  return "Hello, " + name;
}

greet();        // "Hello, Guest"
greet("Alice"); // "Hello, Alice"

Valores de Retorno

  • Las funciones pueden devolver cualquier valor
  • Sin return, las funciones devuelven undefined
  • return sale inmediatamente de la función

Funciones Puras

Funciones que:

  1. Siempre devuelven la misma salida para la misma entrada
  2. No tienen efectos secundarios (no modifican estado externo)
// Pure - predictable, testable
const add = (a, b) => a + b;

// Impure - modifies external state
let total = 0;
const addToTotal = (n) => { total += n; };

Pruébalo Tú Mismo

Aquí tienes un ejemplo práctico que puedes probar. Copia este código y ejecútalo en la consola de tu navegador (presiona F12 para abrir las herramientas de desarrollo) o en el Playground de Código.

// Function declaration
function calculateArea(width, height) {
  return width * height;
}

// Call the function
const area = calculateArea(10, 5); // 50

// Arrow function (modern syntax)
const multiply = (a, b) => a * b;
const square = n => n * n; // Single param, no parentheses needed

// Default parameters
function greet(name = "Guest", greeting = "Hello") {
  return `${greeting}, ${name}!`;
}
console.log(greet());           // "Hello, Guest!"
console.log(greet("Alice"));    // "Hello, Alice!"
console.log(greet("Bob", "Hi")); // "Hi, Bob!"

// Functions can return early
function divide(a, b) {
  if (b === 0) {
    return "Cannot divide by zero";
  }
  return a / b;
}

// Functions as values
const operations = {
  add: (a, b) => a + b,
  subtract: (a, b) => a - b,
};
console.log(operations.add(5, 3)); // 8

Puntos Clave

  • Crea lógica reutilizable con entradas y salidas.
  • Practica con ejemplos de código reales para solidificar tu comprensión
  • Este concepto construye la base para temas más avanzados

Recursos de Aprendizaje Relacionados

Continúa tu camino de programación con estos tutoriales relacionados: