Fundamentos de JavaScript con ejemplos en vivo

Clase 94 de 9930 días de JavaScript

Resumen

Aprende los fundamentos clave de JavaScript que verás en cualquier etapa: variables, conversión de tipos, ciclos, funciones y hoisting. Con ejemplos prácticos y errores comunes, Leo y Juan David Castro muestran cómo pensar el código, detectar bugs típicos y escribir soluciones que realmente funcionan.

¿Qué aprenderás en el reto de 30 días de JavaScript?

Este reto dura seis semanas (con descanso sábado y domingo). Inicia con bases sólidas y avanza hacia temas más complejos, con sesiones en vivo, chat y ejercicios prácticos.

  • Semana 1: funciones, loops, declarar, inicializar y hoisting.
  • Flujo de trabajo: navegador en blanco + consola + editor; copias el código y ejecutas.
  • Dinámica: preguntas en vivo y sección de Q&A.
  • Ejercicio: dibujar un triángulo isósceles con bucles, sin métodos de arrays.
  • Invitado: Juan David Castro comparte trucos y decisiones clave del lenguaje.

¿Cómo está pensada la práctica?

  • Ejecuta fragmentos en la consola del navegador.
  • Itera rápido: copia, pega, prueba y observa resultados.
  • Anota los comportamientos raros para discutirlos.

¿Cómo entender variables y tipos en JavaScript sin errores?

La base es distinguir entre dos momentos: declarar e inicializar. Luego, aprender a convertir tipos correctamente con coerción y casteo.

¿Qué significa declarar e inicializar una variable?

  • Declarar: informar al motor que la variable existe.
  • Inicializar: asignar el primer valor.
  • Atajo común: declarar e inicializar en la misma línea.
// Declaración let variable1; // Inicialización variable1 = 'valor'; // Atajo: declaración + inicialización let variable2 = 42;

Claves que se mencionan: usar let y const. Evitar var por temas de scope y hoisting.

¿Cómo funciona la coerción o el casteo en JavaScript?

  • Con el operador + entre string y número, JavaScript hace coerción implícita y trata todo como texto.
const n1 = '12'; const n2 = 24; const password = n1 + n2; // '1224'
  • Para una suma numérica, realiza conversión explícita. Number es clara y directa.
const n1 = '35'; const n2 = 25; const total = Number(n1) + n2; // 60 (number)
  • Si usas template literals, puedes ejecutar primero la operación y luego convertir a string.
const n1 = 35; const n2 = 25; const password = `${n1 + n2}`; // '60' (string)
  • Nota práctica: ambos términos, coerción y casteo, se usan para hablar de conversión de tipos. La discusión exacta de nombres varía, pero lo importante es distinguir entre implícito y explícito.

¿Comillas dobles, sencillas o comillas invertidas?

  • Dobles y sencillas se comportan igual para strings.
  • Con comillas invertidas (backticks) usas template literals y expresiones con ${ }.
const nombre = 'Leo'; const saludo = `Hola, ${nombre}!`; // Interpolación de variables
  • Truco que funciona pero es feo para reviews: forzar texto sumando un string vacío.
const n = 60; const comoTexto = '' + n; // '60' (string)

¿JavaScript es de tipado dinámico?

  • Sí: tipado dinámico. El lenguaje infiere tipos en tiempo de ejecución.
  • En lenguajes de tipado fuerte como TypeScript, Java, C#, C o C++, declaras tipos y las conversiones son explícitas.
  • Beneficio del tipado fuerte: menos sorpresas en producción al compilar o verificar tipos.

¿Por qué los ciclos, las funciones y el hoisting importan?

Dominar estas tres piezas te ahorra tiempo, evita errores silenciosos y te da estructuras reutilizables.

¿Cómo se repite código con ciclos while y for?

  • Un ciclo repite un bloque hasta que una condición deje de cumplirse.
  • while significa “mientras”. Define cuándo se ejecuta, no cuándo termina.
let numerito = 0; while (numerito <= 10) { console.log('mensaje ' + numerito); numerito += 1; // operador += }
  • Desafío sugerido: traduce esto a la sintaxis de for.

¿Para qué sirven las funciones y qué retorna una función?

  • Encapsulan responsabilidad única y hacen el código legible y reusable.
  • return devuelve el valor principal.
  • Si no retornas, el valor es undefined.
function declararInicializar() { let v = 'valor 1'; v = 'valor 2'; return v; // 'valor 2' } function sumarComoNumero() { const n1 = '35'; const n2 = 25; return Number(n1) + n2; // 60 } function imprimirMensajes() { let i = 0; while (i <= 10) { console.log('mensaje ' + i); i += 1; } // No return: devuelve undefined }
  • Organiza por temas y nombres claros para leer y mantener mejor.

¿Qué es el hoisting y por qué var se comporta distinto a let/const?

  • Con var, JavaScript eleva la declaración antes de ejecutar el código. Resultado típico: undefined en vez de error.
console.log(diego); // undefined por hoisting var diego; diego = 'un profe muy chido';
  • Con let y const, si accedes antes de declarar, obtienes ReferenceError.
console.log(leo); // ReferenceError const leo = 'un profe muy chido';
  • Idea clave: primero declara, luego usa y después inicializa. Evita sorpresas con var.
  • Pregunta abierta que quedó planteada: ¿cómo aplica el hoisting a las funciones?

¿Te animas con el reto del triángulo isósceles usando while y sin métodos de arrays? Comparte tus dudas, tu enfoque y tu solución en los comentarios.