- 1

Fundamentos de JavaScript para Principiantes
02:49 - 2

Instalación y Configuración de JavaScript en Visual Studio Code
04:10 - 3

Instalación y configuración de Visual Studio Code y Node.js en Windows
05:11 - 4

Variables y Buenas Prácticas en JavaScript
09:23 - 5

Tipos de Datos en JavaScript: Primitivos y Complejos
07:59 - 6

Manipulación de Strings en JavaScript: Escritura, Concatenación y Substrings
07:08 - 7

Números y Operaciones Matemáticas en JavaScript
09:30 - 8

Conversión de Tipos en JavaScript: Implícita y Explícita
04:33 - 9

Conversión de Tipos en JavaScript: Explícita e Implícita
12:20
Funciones Puras e Impuras en Programación: Conceptos y Ejemplos
Clase 22 de 55 • Curso de Fundamentos de JavaScript
Contenido del curso
- 10

Operadores de Comparación en JavaScript: Igualdad y Desigualdad
06:12 - 11

Operadores Lógicos en Programación: AND, OR y NOT
04:33 - 12

Estructuras Condicionales: Uso de IF, ELSE y ELSE IF en JavaScript
07:45 - 13

Juego de Adivinanza: Programación con Estructuras Condicionales
09:36 - 14

Estructura y uso del condicional Switch en programación
12:10 - 15

Ciclo For: Iteración de Listas y Uso de Console.log en JavaScript
07:31 - 16

Iteración con for-of en JavaScript para arrays y strings
04:26 - 17

Iteración sobre Objetos con forIn en JavaScript
07:38 - 18

Uso del ciclo while para iteración en programación
03:56 - 19

Ciclos doWhile: Estructura y Diferencias con While
03:13
- 20

Funciones en JavaScript: Cómo Calcular Precios con Descuentos
11:39 - 21

Diferencias entre Funciones y Métodos en JavaScript
10:01 - 22

Funciones Puras e Impuras en Programación: Conceptos y Ejemplos
11:22 - 23

Arrow Functions y Enlace Léxico en JavaScript
10:31 - 24

Scope y Contextos de Ejecución en JavaScript
12:21 - 25

Closures y Ámbito Léxico en JavaScript
08:00 - 26

Fundamentos del Desarrollo Web: Frontend y Backend
02:11
- 27

Arrays: Propiedades, Acceso y Creación en Programación
09:09 - 28

Mutabilidad e inmutabilidad en arrays: conceptos y ejemplos prácticos
07:56 - 29

Métodos push y pop para modificar arrays en JavaScript
04:33 - 30

Métodos map y forEach en JavaScript: Uso y Ejemplos Prácticos
12:53 - 31

Métodos Filter y Reduce en JavaScript: Uso y Ejemplos Prácticos
11:34 - 32

Métodos find y findIndex en JavaScript: Uso y ejemplos prácticos
03:52 - 33

Uso del método slice para extraer porciones de un array en JavaScript
05:28 - 34

Uso del Spread Operator en JavaScript: Copia, Combinación y Más
07:11
- 35

Programación Orientada a Objetos en JavaScript: Conceptos y Práctica
06:48 - 36

Creación y Manipulación de Objetos en JavaScript
09:05 - 37

Función constructora y gestión de instancias en JavaScript
11:36 - 38

Clases en JavaScript: Creación y Uso de Objetos con Sintaxis Moderna
06:17 - 39

Programación Orientada a Objetos en JavaScript: Clases y Prototipos
02:16 - 40

Prototipos y Herencia en JavaScript: Construcción y Uso Práctico
15:38 - 41

Métodos y herencia prototípica en JavaScript
10:43 - 42

Uso de "this" en Clases y Funciones Constructoras
05:36 - 43

Validación de Usuarios en una Red Social: Algoritmo Básico
12:26 - 44

Implementación de la Función Sign-In y Validación de Usuario
09:00
- 45

Programación Síncrona y Asíncrona en JavaScript
04:37 - 46

Promesas en JavaScript: Asincronía y Manejo de Estados
11:36 - 47

Uso de Async/Await para Promesas Asíncronas en JavaScript
09:51 - 48

Peticiones asíncronas con for await en JavaScript
06:19 - 49

Fundamentos de HTTP: Cliente-Servidor y Métodos de Petición
03:12 - 50

Peticiones HTTP en Frontend: Uso de Fetch y Análisis en Network
07:02 - 51

Peticiones HTTP en JavaScript: Fetch, GET, POST y DELETE
14:26 - 52

Envío de Datos al Servidor con JavaScript y Fetch API
10:40 - 53

Eliminar Posts con JavaScript y Delegación de Eventos
10:15 - 54

Manejo de IDs en JavaScript para eliminar artículos del DOM
02:23 - 55

Actualizaciones y Nuevas Funciones en JavaScript
01:48
¿Qué son las funciones puras?
En el vasto mundo de la programación, donde se busca la eficiencia y claridad del código, las funciones puras juegan un papel crucial. Se caracterizan por dos propiedades fundamentales que garantizan su comportamiento predecible y confiable:
- Determinismo: Dada una entrada particular, una función pura siempre produce la misma salida. Esto significa que no importa cuántas veces llames a la función con los mismos argumentos; el resultado será siempre el mismo.
- Ausencia de efectos secundarios: Estas funciones no alteran estados fuera de su propio entorno. Esto significa que no modifican variables globales ni interaccionan con elementos externos al código, como bases de datos o APIs.
A medida que exploramos estas funciones, descubrimos que son una pieza esencial en el diseño de software funcional, promoviendo un código más limpio y fácil de probar.
¿Cuáles son los efectos secundarios?
En contraste con las funciones puras, muchos programas dependen de efectos secundarios para cumplir con sus propósitos. Estos efectos secundarios, aunque esenciales en ciertos contextos, pueden hacer que el código sea impredecible. Algunos ejemplos incluyen:
- Modificar variables globales: Acceder y alterar variables fuera del alcance local de una función puede resultar en funciones impuras.
- Modificar parámetros: Cambiar los valores de los argumentos pasados a una función también genera efectos no deseados.
- Solicitudes HTTP: Llamadas a servicios externos o APIs pueden producir cambios basados en respuestas externas.
- Impresión de mensajes: Tanto
console.logcomoalertson ejemplos de funciones que producen salidas visibles o auditables. - Manipulación del DOM: Interacciones con la estructura del documento en navegadores, alterando su contenido o apariencia.
- Consultas de tiempo: Obtener la hora o fecha actual afecta al estado del programa de forma impredecible.
Aunque estos efectos pueden parecer negativos, es importante recordar que muchos son necesarios para las aplicaciones prácticas.
¿Cómo estructuramos una función pura?
Para entender mejor el concepto de función pura, es útil observar un ejemplo práctico. Imagina una función simple que sume dos números:
function sum(a, b) {
return a + b;
}
Esta función es pura porque:
- Siempre devuelve el mismo resultado cuando se le proporcionan los mismos argumentos.
- No produce efectos secundarios ya que no altera ningún estado global ni interactúa con el entorno externo.
Sin embargo, ¿qué ocurre cuando introducimos una línea de código que imprime un valor en la consola?
function sumYLog(a, b) {
console.log(a);
return a + b;
}
Al agregar console.log, la función deja de ser pura, ya que ahora produce un efecto secundario.
¿Por qué son importantes las funciones puras?
Las funciones puras son esenciales en programación porque permiten:
- Facilidad de prueba: Como no dependen del estado del programa ni lo modifican, son más fáciles de aislar y probar.
- Previsibilidad y confiabilidad: Siempre ofrecen el mismo resultado para los mismos inputs, facilitando la comprensión del flujo del programa.
- Optimización y paralelismo: Facilitan optimizaciones como la memoización (almacenamiento de resultados previos) y son ideales para programas concurrentes o paralelizados.
Funciones como square o attain, que realizan operaciones matemáticas básicas con un único parámetro, son ejemplos clásicos de funciones puras con resultados predecibles.
¿Qué ocurre con la combinación de funciones puras?
La combinación de funciones puras también resulta en funciones puras. Por ejemplo, combinando las funciones square y attain, podemos crear un árbol robusto de funciones:
function square(x) {
return x * x;
}
function attain(y) {
return y + 10;
}
const number = 5;
const finalResult = attain(square(number)); // finalResult será 35
Esta combinación sigue manteniendo la pureza y ofrece la garantía de resultados constantes sin efectos adicionales.
En resumen, el balance entre funciones puras e impuras es vital para escribir un código robusto y escalable. Al comprender y aplicar estos conceptos, los programadores pueden crear software más predecible, fácil de mantener y testar. ¡Sigue explorando y refinando tus habilidades en programación!