Fundamentos de JavaScript
Teoría: Determinismo
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.

¿Qué es una función determinista?
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:
Siempre que uses 'códica', la función devuelve 6. No hay sorpresas.
¿Y una función no determinista?
Piensa en una función que genera un número aleatorio:
No puedes predecir el resultado. Por eso no es determinista.
¿Qué es un efecto secundario?
Hasta ahora vimos funciones que devuelven algo, pero también hay funciones que cambian algo afuera.
console.log() no devuelve nada útil (undefined). Solo muestra texto en pantalla. Eso es un efecto secundario. Otros ejemplos comunes de efectos secundarios
❓ ¿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.