Qué son las funciones en JavaScript

Clase 11 de 27Curso Gratis de Programación Básica

Contenido del curso

Resumen

Si alguna vez te has visto repitiendo la misma operación con números distintos, ya entendiste por qué existen las funciones en JavaScript. Una función es una receta con espacios en blanco que tú llenas cada vez que la usas, y es la pieza que te permite dejar de escribir lo mismo una y otra vez para que la máquina haga ese trabajo por ti.

¿Qué es una función en JavaScript?

Piensa en la receta de un café filtrado. Hay cosas que nunca cambian, como la proporción de agua, la temperatura o el tiempo de extracción. Y hay cosas que sí cambian: cuántas tazas vas a preparar y qué variedad de café tienes hoy. Cuando escribes la receta dejas espacios para esos datos variables, y cuando la preparas, los llenas con valores concretos.

Una función en código hace exactamente eso. La declaras con la palabra function, le das un nombre, abres paréntesis para los espacios y entre llaves vives la lógica que se ejecuta. La palabra return indica lo que la receta entrega cuando termina [3:00].

js function calcularPrecio(precioUnitario, cantidad) { return precioUnitario * cantidad; }

¿Qué hace return en una función? Devuelve el valor que la función entrega al terminar. Sin return, la función se ejecuta pero no te da un resultado que puedas usar después.

¿Por qué escribir una función no ejecuta nada?

Acá hay un detalle que se te puede pasar. Si escribes la función y le das play, la consola no muestra nada. Eso pasa porque escribir la receta no es cocinar; estás guardando las instrucciones para usarlas después. Para que haga algo, tienes que invocarla, es decir, llamarla por su nombre y pasarle los valores que necesita.

js console.log(calcularPrecio(5, 2)); // 10 console.log(calcularPrecio(3, 4)); // 12 console.log(calcularPrecio(7, 1)); // 7

Una sola receta, tres preparaciones distintas.

¿Cuál es la diferencia entre parámetros y argumentos?

Estas dos palabras las vas a oír todo el tiempo y conviene distinguirlas bien. Los espacios que dejas cuando escribes la función, como precioUnitario y cantidad, son los parámetros. Los valores que pasas cuando la invocas, como 5 y 2, son los argumentos [4:30].

Es la misma idea con dos palabras según el momento en que la mires:

  • Cuando escribes la función, hablas de parámetros.
  • Cuando la usas, hablas de argumentos.
  • Los parámetros son los espacios y los argumentos son lo que los llena.

¿Qué es un parámetro en JavaScript? Es el espacio que defines entre los paréntesis de una función para recibir datos. El argumento es el valor real que pasas cuando la llamas.

¿Cómo usar funciones para tomar decisiones?

Las funciones no solo calculan, también pueden aplicar reglas de negocio. Imagina la regla de Okini: cada persona puede reservar máximo dos tazas de preparaciones especiales por día. Una función puede recibir la cantidad pedida y devolver true o false según corresponda.

js function puedeReservar(cantidad) { if (cantidad <= 2) { return true; } else { return false; } }

Fíjate en algo poderoso. Adentro de esta función vive todo lo que ya aprendiste en el módulo: un if de la clase de condiciones, un operador de comparación, un parámetro de tipo número y un retorno booleano. Las funciones son el recipiente donde se ensambla todo [6:20].

Cuando la usas con if (puedeReservar(2)), ya no piensas en la comparación ni en el operador. Le pusiste un nombre a una idea y ahora la usas por el nombre. Eso es abstracción, y es una de las palabras que más vas a oír de aquí en adelante.

¿Por qué la IA escribe funciones más cortas?

Cuando le pides a una inteligencia artificial una función parecida, probablemente te entregue algo así:

js function puedeReservar(cantidad) { return cantidad <= 2; }

Hace exactamente lo mismo en una sola línea, porque cantidad <= 2 ya devuelve true o false por sí solo, así que el if else sobraba. Las dos versiones son correctas. Reconocer que dos códigos que se ven distintos hacen lo mismo es discernment, y es una habilidad que vas a usar muchísimo en los próximos años [8:10].

Las cinco palabras que necesitas para leer cualquier código

Con lo que viste en este módulo ya tienes el vocabulario base de la programación:

  • Variable: cómo la máquina recuerda.
  • Tipo: qué clase de cosa recuerda.
  • Condición: cómo decide.
  • Repetición: cómo hace lo mismo muchas veces.
  • Función: cómo le pones nombre a una idea para reutilizarla.

Los lenguajes cambian, los frameworks cambian, las modas cambian, pero estas cinco ideas no.

Y te queda una tarea pendiente. La función puedeReservar solo verifica una regla, pero Okini también tiene un máximo de 50 tazas al día entre todos los clientes. ¿Cómo escribirías una versión que verifique ambas reglas a la vez? Pista incómoda: vas a necesitar más de un parámetro. Déjame tu propuesta en la sección de discusiones de la clase.