Funciones en JavaScript: Guía Completa

Las funciones en JavaScript son bloques de código reutilizables que realizan una tarea específica.

Declaración de funciones:

Se definen utilizando la palabra clave function.

javascript
function saludar(nombre) {
  return "Hola, " + nombre;
}
console.log(saludar("Juan")); // Imprime: Hola, Juan

Expresiones de función (funciones anónimas):

Son funciones sin nombre que se asignan a una variable.

javascript
const multiplicar = function(a, b) {
  return a * b;
};
console.log(multiplicar(2, 3)); // Imprime: 6

Arrow functions:

Son una forma más concisa de definir funciones. Se utilizan la sintaxis de flecha =>.

javascript
const sumar = (a, b) => a + b;
console.log(sumar(5, 7)); // Imprime: 12

Parámetros y retorno de funciones

Las funciones pueden aceptar parámetros y devolver valores. Esto permite personalizar el comportamiento de la función según las entradas que recibe.

javascript
function calcularArea(base, altura) {
  return (base * altura) / 2;
}
console.log(calcularArea(5, 10)); // Imprime: 25

Scope

El Scope se refiere al alcance de las variables dentro de una función. Hay dos tipos principales:

  Información

  • Alcance local: Variables definidas dentro de una función.
  • Alcance global: Variables definidas fuera de cualquier función.

Hoisting:

Es el comportamiento donde las declaraciones de funciones y variables se elevan al inicio de su contexto de ejecución, lo que permite llamar a funciones antes de su declaración.

javascript
let globalVar = "Soy global";

function mostrarVariable() {
  let localVar = "Soy local";
  console.log(globalVar); // Accede a la variable global
  console.log(localVar);   // Accede a la variable local
}
mostrarVariable();
// console.log(localVar); // Error: localVar no está definida

Funciones de primera clase

En JavaScript, las funciones son “ciudadanos de primera clase”, lo que significa que se pueden tratar como cualquier otra variable. Pueden ser asignadas a variables, pasadas como argumentos y retornadas desde otras funciones.

javascript
function operar(op1, op2, operacion) {
  return operacion(op1, op2);
}

const suma = (a, b) => a + b;
console.log(operar(5, 3, suma)); // Imprime: 8