JavaScript para Lógica y Algoritmos
Esta guía cubre 6 horas de aprendizaje progresivo. Viene del taller de Python — el mismo pensamiento lógico, ahora en el lenguaje de la web.
| Sesión | Tema | Contenido | Duración |
|---|---|---|---|
| Hora 1 | Fundamentos JS | ¿Por qué JS? · Sintaxis básica · Variables y tipos | 60 min |
| Hora 2 | Condicionales | if/else · else if anidados · Operadores lógicos && || ! | 60 min |
| Hora 3 | Ciclo for | Estructura · Patrones (tabla, acumulador, suma) · Retos | 60 min |
| Hora 4 | Ciclo while | Estructura · Patrones (contador, búsqueda) · Retos | 60 min |
| Hora 5 | Funciones y Arrays | Definir funciones · Return · Arrays · recorrer con for | 60 min |
| Hora 6 | Proyecto + Repaso | Tabla Python→JS · Proyecto integrador de notas | 60 min |
Lo que ya sabes (de Python) te dará ventaja
Cada concepto nuevo en JS lo compararemos con su equivalente en Python. No empiezas desde cero. La lógica de condicionales, ciclos y variables es la misma — solo cambia cómo se escribe.
Hora 1 — Fundamentos de JavaScript
Lección 1 de 3 · Introducción al lenguaje
¿Por qué JavaScript?
Ya conoces Python. JS tiene la misma lógica — solo cambia el vocabulario.
El lenguaje que mueve la web
JavaScript corre en todos los navegadores sin instalación. Es el único lenguaje que entienden Chrome, Firefox y Safari directamente. Python es poderoso en el servidor y ciencia de datos; JS domina el navegador, apps móviles y también servidores (Node.js).
# Entrada nombre = input("Tu nombre: ") edad = int(input("Tu edad: ")) # Proceso mayor = edad >= 18 # Salida if mayor: print("Hola, " + nombre)
// Entrada let nombre = prompt("Tu nombre: ") let edad = parseInt(prompt("Tu edad: ")) // Proceso let mayor = edad >= 18 // Salida if (mayor) { console.log("Hola, " + nombre) }
Sin instalación
Corre en el navegador. F12 → Consola y ya tienes JS.
#1 del mundo
Lenguaje más usado 12 años seguidos (Stack Overflow).
Mismo pensamiento
EPS, condicionales, ciclos: idénticos en lógica.
Web, móvil, servidor
Un lenguaje para todo el stack de desarrollo.
¿Cuál es la PRINCIPAL diferencia entre Python y JavaScript?
Hora 1 — Fundamentos de JavaScript
Lección 2 de 3 · Reglas de escritura
Sintaxis básica
Las reglas que rigen cómo se escribe JavaScript.
Bloques con llaves {}
En Python la indentación delimitaba bloques. En JS se usan llaves. La indentación sigue siendo buena práctica pero no es obligatoria.
Comentarios con // o /* */
Una línea: // comentario. Varias líneas: /* comentario */. Python usaba #.
Punto y coma ; al final
Opcional pero recomendado. Evita errores raros. Python no lo necesitaba.
Salida: console.log()
Equivale al print() de Python. Acepta múltiples valores separados por coma.
Entrada: prompt()
Equivale al input() de Python. Siempre devuelve texto (string). Hay que convertir.
¿Cuál es el equivalente de print() en JavaScript?
write()echo()console.log()output()Hora 1 — Fundamentos de JavaScript
Lección 3 de 3 · Variables y tipos de datos
Variables y tipos de datos
En Python existía una forma. En JS hay tres palabras clave. Aprende cuándo usar cada una.
| Palabra | Uso | ¿Puede cambiar? | Python equivale |
|---|---|---|---|
let | Variable normal | ✅ Sí | x = 5 |
const | Constante | ❌ No | Convención MAYÚSCULAS |
var | Forma antigua | ✅ Sí (pero evitar) | — |
const cuando el valor no debe cambiar (PI, IVA, MAX_INTENTOS). Usa let para todo lo demás. Nunca uses var en código nuevo.| Tipo JS | ¿Qué guarda? | Ejemplos | Python |
|---|---|---|---|
number | Enteros Y decimales | 5, -3, 3.14 | int / float |
string | Texto (comillas simples, dobles o backtick) | "Hola", 'JS', `mundo` | str |
boolean | Solo true o false (minúscula) | true, false | True, False |
null | Vacío intencional | null | None |
La mejor forma de combinar texto y variables
Usando backtick ` ` y ${variable} puedes insertar variables dentro de texto sin concatenar con +. Equivale al f-string de Python: f"Hola, {nombre}"
¿Qué imprimirá este código? let x = "10"; console.log(x + 5);
Hora 2 — Condicionales
Lección 1 de 3 · if y else básicos
Condicionales if / else
Mismo concepto que Python. Diferencia: paréntesis en la condición y llaves en el bloque.
if edad >= 18: print("Mayor") else: print("Menor")
if (edad >= 18) { console.log("Mayor") } else { console.log("Menor") }
() · 2) Bloque entre {} · 3) No hay dos puntos :Usa siempre === en JavaScript
=== compara valor Y tipo (estricto). == solo compara valor y puede dar sorpresas. En Python solo existía == y siempre era estricto. En JS: usa siempre ===.
¿Qué retorna 5 === "5" en JavaScript?
Hora 2 — Condicionales
Lección 2 de 3 · else if y anidados
else if y condicionales anidados
Cuando hay más de dos caminos posibles. Python tenía elif, JavaScript tiene else if (dos palabras).
Un if dentro de otro if
Igual que en Python, puedes poner un if dentro del bloque de otro if. Útil cuando una condición depende de que otra ya sea verdadera.
temperatura. Muestra: "Frío" si es menor de 10, "Fresco" entre 10 y 20, "Cálido" entre 21 y 30, "Caliente" si es mayor de 30.Hora 2 — Condicionales
Lección 3 de 3 · Operadores lógicos
Operadores lógicos
Python usaba palabras: and, or, not. JavaScript usa símbolos: &&, ||, !
| Operación | Python | JavaScript | Resultado verdadero cuando... |
|---|---|---|---|
| Y lógico | and | && | AMBAS condiciones son verdaderas |
| O lógico | or | || | AL MENOS UNA condición es verdadera |
| Negación | not | ! | La condición es FALSA |
¿Qué imprime este código? let a = true; let b = false; console.log(a && b);
Hora 3 — Ciclo for
Lección 1 de 3 · Estructura del for
Ciclo for
Python tenía for i in range(). En JS el for tiene tres partes explícitas en una línea.
Las tres partes del for
# del 1 al 10 (11 excluido) for i in range(1, 11): print(i) # paso de 2 en 2 for i in range(0,20,2): print(i)
// del 1 al 10 for (let i = 1; i <= 10; i++) { console.log(i) } // paso de 2 en 2 for (let i = 0; i < 20; i += 2) { console.log(i) }
¿Cuántas veces se ejecuta el cuerpo de: for (let i = 0; i < 5; i++)?
Hora 3 — Ciclo for
Lección 2 de 3 · Patrones comunes
Patrones con for
Los tres patrones que aparecen en el 90% de los programas con ciclos.
Acumular suma (o producto) dentro del ciclo
Inicializar la variable acumuladora en 0 ANTES del ciclo. Sumar o acumular DENTRO de cada iteración.
Filtrar dentro del ciclo
El if dentro del for permite actuar solo en algunas iteraciones.
Hora 3 — Ciclo for
Lección 3 de 3 · Ejercicios prácticos
Ejercicios for
let notas = [70, 45, 88, 62, 90, 30, 75], recorre el array con for y cuenta cuántos aprobaron (nota >= 60) y cuántos reprobaron. Muestra el porcentaje de aprobación.Hora 4 — Ciclo while
Lección 1 de 3 · Estructura del while
Ciclo while
Cuando no sabes cuántas repeticiones necesitas. Se ejecuta MIENTRAS la condición sea verdadera.
n = 1 while n <= 5: print(n) n += 1
let n = 1; while (n <= 5) { console.log(n); n++; }
El error más grave del while
Si la condición NUNCA se vuelve falsa, el ciclo no termina. Siempre asegúrate de que algo dentro del bloque acerque la condición a ser falsa. En nuestros editores hay un límite de 10,000 iteraciones como protección.
¿Cuántas iteraciones ejecuta: let i=1; while(i<=3){i++;}?
Hora 4 — Ciclo while
Lección 2 de 3 · Patrones con while
Patrones con while
El bloque se ejecuta AL MENOS una vez
Diferencia con while normal: la condición se evalúa DESPUÉS. Útil para validar entrada del usuario (preguntar al menos una vez).
Hora 4 — Ciclo while
Lección 3 de 3 · Ejercicios prácticos
Ejercicios while
[12000, 34500, 8900, 21000, 5600]. Usa while para recorrerlos y acumular la suma. Detente si el total supera 50000 (presupuesto agotado). Muestra cuántos artículos se procesaron.Hora 5 — Funciones y Arrays
Lección 1 de 2 · Funciones
Funciones
Un bloque de código con nombre que puedes llamar cuantas veces quieras. Reutilización de lógica.
def saludar(nombre): print(f"Hola, {nombre}") def sumar(a, b): return a + b saludar("Carlos") r = sumar(3, 5)
function saludar(nombre) { console.log(`Hola, ${nombre}`) } function sumar(a, b) { return a + b } saludar("Carlos") let r = sumar(3, 5)
esPrimo(n) que retorne true si n es primo y false si no lo es. Luego úsala en un for para imprimir todos los primos entre 1 y 50.Hora 5 — Funciones y Arrays
Lección 2 de 2 · Arrays
Arrays
Listas de valores. En Python eran list. En JS se llaman Arrays y se comportan muy similar.
let nums = [14, 7, 23, 5, 19, 42, 3, 11], sin usar métodos como sort() o Math.max(), encuentra el valor máximo y el mínimo recorriendo el array con un for. Muéstralos al final.Hora 6 — Proyecto + Repaso
Lección 1 de 2 · Tabla comparativa completa
Python → JavaScript
Tu referencia definitiva. Todo lo aprendido en Python, con su equivalente exacto en JS.
| Concepto | Python | JavaScript |
|---|---|---|
| Salida | print(x) | console.log(x) |
| Entrada | input("msg") | prompt("msg") |
| Variable | x = 5 | let x = 5 |
| Constante | IVA = 0.19 | const IVA = 0.19 |
| Texto formato | f"Hola {x}" | `Hola ${x}` |
| Comentario | # comentario | // comentario |
| if | if x > 0: | if (x > 0) { |
| elif | elif x == 0: | else if (x === 0) { |
| else | else: | } else { |
| Y lógico | and | && |
| O lógico | or | || |
| No lógico | not | ! |
| Igualdad | == | === (usar siempre) |
| Ciclo for | for i in range(1,11): | for(let i=1;i<=10;i++) |
| Ciclo while | while cond: | while (cond) { |
| Incremento | i += 1 | i++ o i += 1 |
| Decremento | i -= 1 | i-- o i -= 1 |
| A entero | int(x) | parseInt(x) |
| A decimal | float(x) | parseFloat(x) |
| A texto | str(x) | String(x) |
| Verdadero | True | true |
| Falso | False | false |
| Función | def nombre(a): | function nombre(a) { |
| Lista/Array | [1, 2, 3] | [1, 2, 3] |
| Longitud lista | len(lista) | lista.length |
| Agregar al final | lista.append(x) | array.push(x) |
Hora 6 — Proyecto + Repaso
Lección 2 de 2 · Proyecto integrador
Proyecto integrador
Integra todo lo aprendido: variables, condicionales, for, while, funciones y arrays en un solo programa.
Lo que debe hacer tu programa
Tienes un array de estudiantes con nombre y tres notas. El programa debe: calcular el promedio de cada uno, clasificar su desempeño, encontrar el mayor y menor promedio, contar aprobados/reprobados y mostrar un reporte final.