¿Ya dominas lo básico? Un curso estructurado de JavaScript es la vía rápida para dar el salto.
Ver cursos de JavaScript en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Crear variables
- 03Condicionales (sentencias if)
- 04Bucles (sentencias for)
- 05Crear funciones
- 06Trabajar con arrays
- 07Trabajar con objetos
- 08Bucles (sentencias while)
- 09Trabajar con cadenas de texto
- 10Usar clases (programación orientada a objetos)
- 11Gestión de errores (try...catch)
- 12Desestructuración y sintaxis de propagación
- 13Código asíncrono (Promise / async y await)
- 14Métodos avanzados de arrays (filter y reduce)
- 15La sentencia switch
- 16El operador ternario
- 17Herencia (extender clases)
- 18Cómo escribir comentarios
- 19Operadores lógicos (AND, OR, NOT)
- 20Constantes (valores de solo lectura con const)
- 21Dividir y unir cadenas (split y join)
- 22Sintaxis segura frente a null (?? y ?.)
- 23Buscar en arrays y colecciones (includes y find)
- 24Transformar arrays con map
- 25Arrays bidimensionales (datos en forma de tabla)
- 26Crear una clase de error propia
- 27Argumentos por defecto (valores iniciales de los parámetros)
- 28Usar Set (colecciones)
- 29Verificar con assert (tu primer paso hacia las pruebas)
- 30Funciones de orden superior (pasar una función como argumento)
- 31Pilas y colas (estructuras de datos básicas)
- 32Fundamentos de la conversión de tipos
- 33Introducción a las expresiones regulares
- 34El algoritmo de búsqueda binaria
- 35Construir un cifrado César (desplazar letras)
- 36Entender cómo funciona la ordenación de burbuja
- 37Construir y mostrar fechas (año, mes y día)
- 38Escribir varias pruebas unitarias juntas (casos de prueba)
- 39Acelerar cálculos con memoización (caché)
- 40Normalizar cadenas (trim y unificar mayúsculas)
- 41La diferencia entre copia superficial y copia profunda
- 42Fundamentos de los Enum (tipos enumerados)
- 43Aplanar arrays (flatten)
- 44Invertir una cadena y detectar un palíndromo
- 45Emparejar dos arrays (una operación zip)
- 46Redondear números (floor, ceil y round)
- 47Cadenas de varias líneas (plantillas literales)
- 48Devolver varios valores desde una función (desestructurar arrays)
- 49Calcular el MCD y el MCM (algoritmo de Euclides)
- 50Dar formato a números (alinear dígitos y decimales)
- 51Lógica de limpieza con try/catch/finally
- 52Escribir funciones genéricas que no dependen del tipo
- 53Fundamentos de Map (un objeto para pares clave-valor)
- 54Generar números aleatorios
- 55Operaciones a nivel de bits (AND, OR, XOR y desplazamientos)
- 56Usar static (propiedades y métodos estáticos)
- 57Esperar un tiempo fijo (setTimeout y await)
- 58Cuidado con el error de redondeo en coma flotante
- 59Transformar y aplanar de una vez con flatMap()
- 60FizzBuzz (el ejercicio clásico)
- 61Comprobar si un número es primo
- 62Operaciones de conjuntos con Set (unión, intersección y diferencia)
- 63Convertir bases numéricas (binario y hexadecimal)
- 64Comprobar que los paréntesis casan (aplicación de pilas)
- 65Comprobar un anagrama
- 66Comprobar si un año es bisiesto
- 67Convertir temperaturas (Celsius ⇄ Fahrenheit)
- 68Calcular la descomposición en factores primos
- 69[Aplicado] Construye una lista de tareas sencilla
Crear funciones
En esta lección aprenderás a escribir funciones en JavaScript para reutilizar la misma lógica en varios sitios. Está escrita para quien ha buscado «cómo crear una función en JavaScript» o «uso de funciones en JavaScript».
Una función agrupa un trozo de lógica y le da un nombre. Se define con function nombre(argumentos) { ...; return valor; } y se llama con nombre(valor). Piénsalo como una receta: cuando has anotado unos pasos y les has puesto nombre, puedes reproducir el mismo resultado cuando quieras. La fuerza de una función está en que cambiar los argumentos te da resultados distintos con la misma lógica.
El código de ejemplo define una función llamada saludar que recibe un argumento nombre y usa return para devolver un mensaje de saludo. Un valor devuelto con return se puede usar directamente donde se llama, por ejemplo console.log(saludar("Carlos")).
Un error habitual al empezar es olvidar el return, con lo que el resultado de la función queda como undefined. return significa «cierra aquí el resultado de la función y entrégalo a quien la llamó», así que cualquier función pensada para producir un valor lo necesita sin falta. Ten cuidado también con la confusión cuando una variable definida fuera de la función comparte nombre con uno de sus argumentos.
En el desarrollo real, cuando necesitas reutilizar el mismo cálculo o proceso en varios sitios, lo estándar es extraerlo primero a una función. Dividir el código en funciones de tamaño razonable lo hace más fácil de seguir, de depurar y de probar. La calidad del diseño de tus funciones influye mucho en la calidad del código real.
Algunas funciones no devuelven ningún valor y solo realizan una acción; en ese caso puedes omitir el return y quien la llama simplemente la ejecuta sin usar un valor de retorno. Ser consciente de la distinción entre «funciones que devuelven un valor» y «funciones que solo hacen algo» deja mucho más clara la intención de tu código.
Nombrar funciones también tiene su truco: la regla básica es dar un nombre como saludar o calcularTotal, donde el verbo transmita «qué hace esta función». Una función cuyo nombre por sí solo permite adivinar qué hace es una verdadera cortesía hacia quien lea tu código.
💡 Todo lo que pases a console.log() aparece en la salida de abajo.
