Semana 4
Página web con JavaScript
Temas Aprendidos
Esta semana aprendí sobre los motores de JavaScript y cómo usar variables, operadores y distintos tipos de datos como números, strings, objetos y booleanos. También vimos estructuras de control, bucles y varios tipos de funciones, como las flecha y las auto invocadas. Me pareció interesante cómo se puede modificar elementos, estilos y crear animaciones con canvas usando solo JavaScript.
Ejercicios y Resultados
Variables, Operadores y Funciones JavaScript
Código del ejercicio:
// Variables y tipos de datos let nombre = "JavaScript"; const edad = 28; let esActivo = true; let usuario = { nombre: "Juan", email: "juan@email.com", saludar: () => `Hola, soy ${usuario.nombre}` }; // Función tradicional function calcular(a, b, operacion) { switch(operacion) { case '+': return a + b; case '-': return a - b; case '*': return a * b; case '/': return b !== 0 ? a / b : 'Error: División por cero'; default: return 'Operación no válida'; } } // Función flecha y closure const crearContador = () => { let count = 0; return { incrementar: () => ++count, decrementar: () => --count, obtener: () => count }; }; // Función auto-invocada (IIFE) (function() { console.log("Función ejecutada inmediatamente"); })();
Resultado:
Manipulación del DOM y Gráficos Canvas
Código del ejercicio:
// Manipulación de elementos y estilos function cambiarEstilos() { const elemento = document.getElementById('elementoDinamico'); elemento.style.backgroundColor = `hsl(${Math.random() * 360}, 70%, 60%)`; elemento.style.transform = `rotate(${Math.random() * 360}deg) scale(${0.8 + Math.random() * 0.4})`; elemento.textContent = `Transformado ${Math.floor(Math.random() * 100)}`; } // Canvas y animaciones function dibujarEnCanvas() { const canvas = document.getElementById('animationCanvas'); const ctx = canvas.getContext('2d'); // Limpiar canvas ctx.clearRect(0, 0, canvas.width, canvas.height); // Dibujar círculos animados const tiempo = Date.now() * 0.002; for(let i = 0; i < 5; i++) { const x = 150 + Math.sin(tiempo + i) * 80; const y = 75 + Math.cos(tiempo + i * 0.5) * 30; const radio = 10 + Math.sin(tiempo * 2 + i) * 5; ctx.fillStyle = `hsl(${(tiempo * 50 + i * 60) % 360}, 70%, 60%)`; ctx.beginPath(); ctx.arc(x, y, radio, 0, Math.PI * 2); ctx.fill(); } requestAnimationFrame(dibujarEnCanvas); }
Resultado Interactivo:
Animaciones Avanzadas y Efectos Interactivos
Código del ejercicio:
// Sistema de partículas function crearParticula(x, y) { const particula = document.createElement('div'); particula.className = 'particle'; particula.style.left = x + 'px'; particula.style.top = y + 'px'; particula.style.width = Math.random() * 8 + 4 + 'px'; particula.style.height = particula.style.width; document.getElementById('areaParticulas').appendChild(particula); setTimeout(() => { if (particula.parentNode) { particula.parentNode.removeChild(particula); } }, 3000); } // Animación de texto dinámico function animarTexto() { const texto = "¡JavaScript es increíble!"; const contenedor = document.getElementById('textoAnimado'); contenedor.innerHTML = ''; [...texto].forEach((letra, i) => { const span = document.createElement('span'); span.textContent = letra === ' ' ? '\u00A0' : letra; span.style.animationDelay = i * 100 + 'ms'; span.classList.add('letra-animada'); contenedor.appendChild(span); }); } // Efecto de ondas function crearOnda(evento) { const boton = evento.target; const rect = boton.getBoundingClientRect(); const x = evento.clientX - rect.left; const y = evento.clientY - rect.top; const onda = document.createElement('span'); onda.style.cssText = ` position: absolute; left: ${x}px; top: ${y}px; width: 0; height: 0; border-radius: 50%; background: rgba(255,255,255,0.5); transform: translate(-50%, -50%); animation: onda 0.6s ease-out; `; boton.style.position = 'relative'; boton.appendChild(onda); setTimeout(() => onda.remove(), 600); }
Resultado Interactivo:
Reflexión Final
Durante esta semana, me di cuenta de lo importante que es comprender la lógica detrás del código para poder aplicarlo de forma creativa. Al practicar con funciones y estructuras de control, entendí mejor cómo resolver problemas paso a paso. Esto me motivó a seguir explorando JavaScript y a fortalecer mi pensamiento lógico.
¿Qué aprendí?
Aprendí sobre variables, operadores, funciones y estructuras de control en JavaScript.
¿Cómo aprendí?
Aprendí practicando con ejercicios y revisando documentación de JS.