Bienvenida · Plan de estudio

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.

6 horas de contenido
📝 16 lecciones
💻 30+ ejercicios ejecutables
SesiónTemaContenidoDuración
Hora 1Fundamentos JS¿Por qué JS? · Sintaxis básica · Variables y tipos60 min
Hora 2Condicionalesif/else · else if anidados · Operadores lógicos && || !60 min
Hora 3Ciclo forEstructura · Patrones (tabla, acumulador, suma) · Retos60 min
Hora 4Ciclo whileEstructura · Patrones (contador, búsqueda) · Retos60 min
Hora 5Funciones y ArraysDefinir funciones · Return · Arrays · recorrer con for60 min
Hora 6Proyecto + RepasoTabla Python→JS · Proyecto integrador de notas60 min
💡 Antes de empezar

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

15 min
Hora 1 · Lección 1

¿Por qué JavaScript?

Ya conoces Python. JS tiene la misma lógica — solo cambia el vocabulario.

🌐 Contexto

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).

🐍 Python — ya lo conoces
# Entrada
nombre = input("Tu nombre: ")
edad = int(input("Tu edad: "))

# Proceso
mayor = edad >= 18

# Salida
if mayor:
    print("Hola, " + nombre)
⚡ JavaScript — lo nuevo
// 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?

AJavaScript es más difícil que Python
BJavaScript no tiene ciclos ni condicionales
CJavaScript corre en el navegador sin instalación; Python requiere instalarse
DNo hay ninguna diferencia
📋

Hora 1 — Fundamentos de JavaScript

Lección 2 de 3 · Reglas de escritura

20 min
Hora 1 · Lección 2

Sintaxis básica

Las reglas que rigen cómo se escribe JavaScript.

1

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.

2

Comentarios con // o /* */

Una línea: // comentario. Varias líneas: /* comentario */. Python usaba #.

3

Punto y coma ; al final

Opcional pero recomendado. Evita errores raros. Python no lo necesitaba.

4

Salida: console.log()

Equivale al print() de Python. Acepta múltiples valores separados por coma.

5

Entrada: prompt()

Equivale al input() de Python. Siempre devuelve texto (string). Hay que convertir.

sintaxis_basica.js
// ejecuta para ver la salida...

¿Cuál es el equivalente de print() en JavaScript?

Awrite()
Becho()
Cconsole.log()
Doutput()
📦

Hora 1 — Fundamentos de JavaScript

Lección 3 de 3 · Variables y tipos de datos

25 min
Hora 1 · Lección 3

Variables y tipos de datos

En Python existía una forma. En JS hay tres palabras clave. Aprende cuándo usar cada una.

PalabraUso¿Puede cambiar?Python equivale
letVariable normal✅ Síx = 5
constConstante❌ NoConvención MAYÚSCULAS
varForma antigua✅ Sí (pero evitar)
Regla práctica: Usa 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?EjemplosPython
numberEnteros Y decimales5, -3, 3.14int / float
stringTexto (comillas simples, dobles o backtick)"Hola", 'JS', `mundo`str
booleanSolo true o false (minúscula)true, falseTrue, False
nullVacío intencionalnullNone
variables.js
// ejecuta para ver la salida...
🎯 Template literals (backticks)

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}"

template_literals.js
// ejecuta para ver la salida...

¿Qué imprimirá este código? let x = "10"; console.log(x + 5);

A15 (suma numérica)
B"105" (concatenación de texto)
CError
Dundefined
🔀

Hora 2 — Condicionales

Lección 1 de 3 · if y else básicos

20 min
Hora 2 · Lección 1

Condicionales if / else

Mismo concepto que Python. Diferencia: paréntesis en la condición y llaves en el bloque.

🐍 Python
if edad >= 18:
    print("Mayor")
else:
    print("Menor")
⚡ JavaScript
if (edad >= 18) {
    console.log("Mayor")
} else {
    console.log("Menor")
}
3 diferencias vs Python: 1) Condición entre () · 2) Bloque entre {} · 3) No hay dos puntos :
if_else.js — edita la variable y ejecuta
// ejecuta...
⚖️ == vs ===

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 ===.

igualdad.js
// ejecuta...

¿Qué retorna 5 === "5" en JavaScript?

Atrue (son el mismo número)
Bfalse (diferentes tipos: number vs string)
CError de tipo
Dnull
🔀

Hora 2 — Condicionales

Lección 2 de 3 · else if y anidados

20 min
Hora 2 · Lección 2

else if y condicionales anidados

Cuando hay más de dos caminos posibles. Python tenía elif, JavaScript tiene else if (dos palabras).

else_if.js
// ejecuta...
🔗 Condicionales anidados

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.

anidados.js
// ejecuta...
// reto_01.js — Condicional múltipleBásico
Declara una variable 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.
// resultado...
🔀

Hora 2 — Condicionales

Lección 3 de 3 · Operadores lógicos

20 min
Hora 2 · Lección 3

Operadores lógicos

Python usaba palabras: and, or, not. JavaScript usa símbolos: &&, ||, !

OperaciónPythonJavaScriptResultado verdadero cuando...
Y lógicoand&&AMBAS condiciones son verdaderas
O lógicoor||AL MENOS UNA condición es verdadera
Negaciónnot!La condición es FALSA
logicos.js
// ejecuta...
// reto_02.js — Operadores lógicosIntermedio
Un parque de diversiones permite entrar si: edad >= 12 Y altura >= 140 (cm). Si solo cumple una condición, muestra qué falta. Si no cumple ninguna, muestra el mensaje correspondiente.
// resultado...

¿Qué imprime este código? let a = true; let b = false; console.log(a && b);

Atrue
Bfalse
Cnull
DError
🔁

Hora 3 — Ciclo for

Lección 1 de 3 · Estructura del for

20 min
Hora 3 · Lección 1

Ciclo for

Python tenía for i in range(). En JS el for tiene tres partes explícitas en una línea.

🏗 Estructura

Las tres partes del for

anatomia_for.js
// ejecuta...
🐍 Python — range()
# 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)
⚡ JavaScript — explícito
// 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)
}
for_variantes.js
// ejecuta...

¿Cuántas veces se ejecuta el cuerpo de: for (let i = 0; i < 5; i++)?

A4 veces
B5 veces (i = 0,1,2,3,4)
C6 veces
Dinfinitas veces
🔁

Hora 3 — Ciclo for

Lección 2 de 3 · Patrones comunes

20 min
Hora 3 · Lección 2

Patrones con for

Los tres patrones que aparecen en el 90% de los programas con ciclos.

Acumulador
Tabla multiplicar
for + if combinados
📊 Patrón acumulador

Acumular suma (o producto) dentro del ciclo

Inicializar la variable acumuladora en 0 ANTES del ciclo. Sumar o acumular DENTRO de cada iteración.

acumulador.js
// ejecuta...
tabla_multiplicar.js
// ejecuta...
🔀 Combinar for + if

Filtrar dentro del ciclo

El if dentro del for permite actuar solo en algunas iteraciones.

for_if.js
// ejecuta...
🔁

Hora 3 — Ciclo for

Lección 3 de 3 · Ejercicios prácticos

20 min
Hora 3 · Lección 3

Ejercicios for

// ej_for_01.jsBásico
Imprime todos los números del 1 al 50 que sean divisibles por 7. Muestra también cuántos encontraste al final.
// resultado...
// ej_for_02.jsIntermedio
Dado 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.
// resultado...
🔂

Hora 4 — Ciclo while

Lección 1 de 3 · Estructura del while

20 min
Hora 4 · Lección 1

Ciclo while

Cuando no sabes cuántas repeticiones necesitas. Se ejecuta MIENTRAS la condición sea verdadera.

🐍 Python
n = 1
while n <= 5:
    print(n)
    n += 1
⚡ JavaScript
let n = 1;
while (n <= 5) {
    console.log(n);
    n++;
}
⚠️ Bucle infinito

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.

while_basico.js
// ejecuta...

¿Cuántas iteraciones ejecuta: let i=1; while(i<=3){i++;}?

A2
B3
C4
DInfinitas
🔂

Hora 4 — Ciclo while

Lección 2 de 3 · Patrones con while

20 min
Hora 4 · Lección 2

Patrones con while

Contador + límite
Buscar condición
do...while
while_contador.js
// ejecuta...
while_buscar.js
// ejecuta...
🔄 do...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).

do_while.js
// ejecuta...
🔂

Hora 4 — Ciclo while

Lección 3 de 3 · Ejercicios prácticos

20 min
Hora 4 · Lección 3

Ejercicios while

// ej_while_01.jsBásico
Usando while, imprime la secuencia de Collatz para el número 27: si es par divídelo entre 2; si es impar multiplícalo por 3 y suma 1. Para cuando llegues a 1. Cuenta cuántos pasos tardó.
// resultado...
// ej_while_02.jsIntermedio
Simula una caja registradora: tienes un array de precios [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.
// resultado...
🧩

Hora 5 — Funciones y Arrays

Lección 1 de 2 · Funciones

25 min
Hora 5 · Lección 1

Funciones

Un bloque de código con nombre que puedes llamar cuantas veces quieras. Reutilización de lógica.

🐍 Python
def saludar(nombre):
    print(f"Hola, {nombre}")

def sumar(a, b):
    return a + b

saludar("Carlos")
r = sumar(3, 5)
⚡ JavaScript
function saludar(nombre) {
    console.log(`Hola, ${nombre}`)
}

function sumar(a, b) {
    return a + b
}

saludar("Carlos")
let r = sumar(3, 5)
funciones.js
// ejecuta...
// ej_funciones.jsIntermedio
Crea una función 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.
// resultado...
📚

Hora 5 — Funciones y Arrays

Lección 2 de 2 · Arrays

35 min
Hora 5 · Lección 2

Arrays

Listas de valores. En Python eran list. En JS se llaman Arrays y se comportan muy similar.

arrays_basico.js
// ejecuta...
// ej_arrays.jsAvanzado
Dado el array 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.
// resultado...
🗺

Hora 6 — Proyecto + Repaso

Lección 1 de 2 · Tabla comparativa completa

15 min
Hora 6 · Lección 1

Python → JavaScript

Tu referencia definitiva. Todo lo aprendido en Python, con su equivalente exacto en JS.

ConceptoPythonJavaScript
Salidaprint(x)console.log(x)
Entradainput("msg")prompt("msg")
Variablex = 5let x = 5
ConstanteIVA = 0.19const IVA = 0.19
Texto formatof"Hola {x}"`Hola ${x}`
Comentario# comentario// comentario
ifif x > 0:if (x > 0) {
elifelif x == 0:else if (x === 0) {
elseelse:} else {
Y lógicoand&&
O lógicoor||
No lógiconot!
Igualdad===== (usar siempre)
Ciclo forfor i in range(1,11):for(let i=1;i<=10;i++)
Ciclo whilewhile cond:while (cond) {
Incrementoi += 1i++ o i += 1
Decrementoi -= 1i-- o i -= 1
A enteroint(x)parseInt(x)
A decimalfloat(x)parseFloat(x)
A textostr(x)String(x)
VerdaderoTruetrue
FalsoFalsefalse
Funcióndef nombre(a):function nombre(a) {
Lista/Array[1, 2, 3][1, 2, 3]
Longitud listalen(lista)lista.length
Agregar al finallista.append(x)array.push(x)
🏆

Hora 6 — Proyecto + Repaso

Lección 2 de 2 · Proyecto integrador

45 min
Hora 6 · Lección 2

Proyecto integrador

Integra todo lo aprendido: variables, condicionales, for, while, funciones y arrays en un solo programa.

🎯 Sistema de Gestión de Notas

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.

// proyecto_notas.js — Proyecto finalProyecto completo
Completa las partes marcadas con "// TU CÓDIGO". El array y la estructura base están dados. Usa lo aprendido durante las 6 horas.
// resultado...
🎓 ¡6 horas completadas!

Lo que dominaste

✓ Sintaxis JS
✓ let, const, tipos
✓ Template literals
✓ if / else if / else
✓ Operadores === && ||
✓ Ciclo for (3 patrones)
✓ Ciclo while / do-while
✓ Funciones
✓ Arrays básicos
✓ Python → JS completo
JS Examen Final