Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Determinismo Fundamentos de JavaScript

Comprender qué funciones son deterministas y qué es un efecto secundario te permite escribir código más predecible, confiable y sencillo de mantener. En un entorno de trabajo real, esto se traduce en menos errores, mayor facilidad para realizar pruebas y la posibilidad de mejorar el programa con mayor seguridad. determinista

¿Qué es una función determinista?

Una función es determinista si, cada vez que la llamamos con los mismos parámetros, siempre devuelve el mismo resultado.

Es como una calculadora de bolsillo: si ingresas 2 + 2, siempre obtendrás 4, sin importar cuántas veces hagas la operación.

Veamos un ejemplo en JavaScript con una función que cuenta la cantidad de caracteres en una palabra:

console.log(length('códica')); // 6
console.log(length('códica')); // 6

Siempre que uses 'códica', la función devuelve 6. No hay sorpresas.

¿Y una función no determinista?

Una función no determinista puede devolver resultados distintos, aunque le des los mismos datos.

Piensa en una función que genera un número aleatorio:

console.log(Math.random()); // 0.0985661311319767
console.log(Math.random()); // 0.8839904367241888
// cada vez muestra un número distinto

No puedes predecir el resultado. Por eso no es determinista.

💡 Las funciones deterministas son más fáciles de probar y usar. Siempre que puedas, intenta escribir funciones así.

¿Qué es un efecto secundario?

Hasta ahora vimos funciones que devuelven algo, pero también hay funciones que cambian algo afuera.

Un efecto secundario es cuando una función hace algo externo: como mostrar algo en pantalla, guardar un archivo o enviar datos.
let resultado = console.log('Hola, mundo!');
console.log(resultado); // undefined
💡 console.log() no devuelve nada útil (undefined). Solo muestra texto en pantalla. Eso es un efecto secundario.

Otros ejemplos comunes de efectos secundarios

Tipo de efecto secundario Ejemplo
Escribir en la consola console.log('Mensaje');
Modificar un archivo Guardar datos en un archivo .txt
Hacer una petición a la red Enviar datos a un servidor
Cambiar una variable global Alterar valores almacenados fuera de la función

¿Por qué importa?

Los efectos secundarios no son malos, pero si abusas de ellos, tu código se vuelve impredecible. Es mejor escribir funciones claras y controladas: que devuelvan resultados y solo cambien cosas externas si es necesario.


Resumen

  • Una función determinista siempre da el mismo resultado con los mismos datos.
  • Una función no determinista puede cambiar su resultado cada vez.
  • Un efecto secundario es cuando la función cambia algo fuera de ella.
  • Usa funciones deterministas siempre que puedas y controla los efectos secundarios.

Materiales adicionales

  1. Funciones deterministas
  2. Efecto secundario

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY