JavaScript 101

Tu guía completa para aprender JavaScript desde cero

¿Qué es JavaScript?

JavaScript (JS) es un lenguaje de programación que ejecuta las computadoras. Fue creado en 1995 para hacer las páginas web interactivas. Hoy en día, es el lenguaje más importante de la web.

¿Por qué aprender JavaScript?

📌 Dato importante

JavaScript se ejecuta en tu navegador (Chrome, Firefox, Safari, etc.). No necesitas instalar nada especial para empezar a aprender.

Antes de Empezar

Solo necesitas:

  1. Un navegador web (ya tienes uno)
  2. Un editor de texto (Notepad, VS Code, etc.)
  3. Disposición a aprender

¿Cómo ejecutar JavaScript?

Existen 3 formas principales:

1. En la consola del navegador

Presiona F12 en tu navegador, ve a "Console" y escribe código directamente.

2. En un archivo HTML

<script>
    console.log("¡Hola JavaScript!");
</script>

3. En un archivo .js separado

<script src="archivo.js"></script>

Los Conceptos Básicos

Declaraciones y Expresiones

Una declaración es una instrucción que le dices al navegador que haga algo.

Ejemplo: Mostrar un mensaje

console.log("Hola, mundo!");

Resultado en la consola: Hola, mundo!

💡 Explicación

console.log() es una función que muestra mensajes en la consola. Es perfecta para aprender y depurar código.

Comentarios

Los comentarios son notas que escribes para ti mismo. JavaScript los ignora.

Tipos de comentarios

// Esto es un comentario de una línea

/* Esto es un comentario
   de múltiples líneas */

Variables: Guardando Datos

Una variable es como una caja donde guardas información. Puedes darle un nombre y acceder a ella cuando la necesites.

¿Por qué necesitamos variables?

Imagina que quieres guardar el nombre de una persona y luego usarlo varias veces. Sin variables, tendrías que escribir el nombre cada vez.

Tipos de variables: var, let y const

1. var (antiguo, no recomendado)

var nombre = "Juan";
console.log(nombre); // Juan

Funciona, pero es mejor usar let o const.

2. let (recomendado para valores que cambian)

let edad = 25;
edad = 26; // Puedo cambiar el valor
console.log(edad); // 26

let permite cambiar el valor después de crearlo.

3. const (recomendado para valores que no cambian)

const pi = 3.14159;
// pi = 3.14; // Esto daría error
console.log(pi); // 3.14159

const no permite cambiar el valor. Úsalo por defecto.

✅ Regla de oro

Usa const por defecto. Si necesitas cambiar el valor, usa let. Evita var.

Tipos de Datos

String (texto)

const nombre = "Diego";
const saludo = 'Hola'; // También funciona con comillas simples
console.log(nombre); // Diego

Number (número)

const edad = 30;
const precio = 19.99;
const negativo = -5;
console.log(edad + precio); // 49.99

Boolean (verdadero o falso)

const esMayorDeEdad = true;
const tieneAuto = false;
console.log(esMayorDeEdad); // true

Array (lista de elementos)

const frutas = ["manzana", "plátano", "naranja"];
console.log(frutas[0]); // manzana (primer elemento)
console.log(frutas.length); // 3 (cantidad de elementos)

Los arrays empiezan a contar desde 0, no desde 1.

Object (colección de propiedades)

const persona = {
    nombre: "Carlos",
    edad: 28,
    ciudad: "Madrid"
};
console.log(persona.nombre); // Carlos
console.log(persona["edad"]); // 28

📌 Accediendo a propiedades de objetos

Hay dos formas: objeto.propiedad o objeto["propiedad"]

Operadores Básicos

Matemáticos

console.log(10 + 5);   // 15 (suma)
console.log(10 - 5);   // 5 (resta)
console.log(10 * 5);   // 50 (multiplicación)
console.log(10 / 5);   // 2 (división)
console.log(10 % 3);   // 1 (residuo)

Comparación

console.log(10 > 5);    // true (10 es mayor que 5)
console.log(10 < 5);    // false (10 no es menor que 5)
console.log(10 === 10); // true (es igual)
console.log(10 !== 10); // false (no es diferente)
console.log(10 >= 10);  // true (es mayor o igual)

Nota: === compara el valor Y el tipo. == solo compara el valor.

Lógicos

const edad = 25;
const tieneCarnet = true;

console.log(edad >= 18 && tieneCarnet); // true (AND: ambos verdaderos)
console.log(edad >= 18 || tieneCarnet); // true (OR: al menos uno verdadero)
console.log(!tieneCarnet); // false (NOT: niega el valor)

💡 Operadores lógicos (AND, OR, NOT)

&& (AND): ambos deben ser verdaderos

|| (OR): al menos uno debe ser verdadero

! (NOT): invierte el valor

Estructuras de Control

Las estructuras de control te permiten tomar decisiones en tu código. "Si pasa esto, haz eso."

if - else (Condicionales)

Decisión simple

const edad = 20;

if (edad >= 18) {
    console.log("Eres mayor de edad");
} else {
    console.log("Eres menor de edad");
}

Resultado: Eres mayor de edad

Múltiples condiciones

const calificacion = 8;

if (calificacion >= 9) {
    console.log("Excelente");
} else if (calificacion >= 7) {
    console.log("Bueno");
} else if (calificacion >= 5) {
    console.log("Aprobado");
} else {
    console.log("Desaprobado");
}

Resultado: Bueno

switch (Múltiples opciones)

Elegir entre varias opciones

const dia = "lunes";

switch (dia) {
    case "lunes":
        console.log("Es lunes");
        break;
    case "viernes":
        console.log("¡Es viernes!");
        break;
    default:
        console.log("Otro día");
}

Resultado: Es lunes

El break detiene el switch. Sin break, continúa ejecutando.

Bucles (Repeticiones)

for - Repetir un número específico de veces

for (let i = 1; i <= 5; i++) {
    console.log("Número: " + i);
}

// Resultado:
// Número: 1
// Número: 2
// Número: 3
// Número: 4
// Número: 5

i++ significa "suma 1 a i". Se ejecuta 5 veces.

while - Repetir mientras una condición sea verdadera

let contador = 1;

while (contador <= 5) {
    console.log("Contador: " + contador);
    contador++; // Aumentar el contador
}

// Resultado: impulsa del 1 al 5

for...of - Recorrer elementos de un array

const colores = ["rojo", "azul", "verde"];

for (const color of colores) {
    console.log("Color: " + color);
}

// Resultado:
// Color: rojo
// Color: azul
// Color: verde

Perfecto para recorrer listas sin preocuparte del índice.

forEach - Otra forma de recorrer arrays

const numeros = [10, 20, 30];

numeros.forEach((numero) => {
    console.log("Número: " + numero);
});

forEach es más moderno que for...of.

Funciones: Código Reutilizable

Una función es un bloque de código que hace algo específico. Puedes crear una función y usarla múltiples veces sin repetir el código.

¿Por qué usar funciones?

Función básica sin parámetros

function saludar() {
    console.log("Hola, bienvenido");
}

saludar(); // Llamar la función
saludar(); // Usarla de nuevo

Resultado: Se imprime "Hola, bienvenido" dos veces

Función con parámetros (inputs)

function sumar(a, b) {
    console.log(a + b);
}

sumar(5, 3);  // Resultado: 8
sumar(10, 20); // Resultado: 30

Los parámetros (a, b) reciben valores cuando llamas la función.

Función con retorno (output)

function multiplicar(a, b) {
    return a * b;
}

const resultado = multiplicar(4, 5);
console.log(resultado); // 20

return devuelve un valor que la función calcula.

Función completa con lógica

function calcularDescuento(precio, descuento) {
    const precioFinal = precio - (precio * descuento / 100);
    return precioFinal;
}

const miPrecio = calcularDescuento(100, 20);
console.log("Precio final: $" + miPrecio); // Precio final: $80

Arrow Functions (Funciones modernas)

Una forma más moderna de escribir funciones usando =>

Sintaxis moderna

const saludar = () => {
    console.log("Hola");
};

saludar(); // Resultado: Hola

Arrow function con parámetros

const sumar = (a, b) => {
    return a + b;
};

console.log(sumar(5, 3)); // 8

Arrow function simplificada

const multiplicar = (a, b) => a * b;

console.log(multiplicar(4, 5)); // 20

Si solo hay una línea, puedes omitir las llaves y return.

💡 Ventajas de arrow functions

✓ Sintaxis más limpia

✓ Código más legible

✓ Comportamiento con "this" es diferente (aprenderás más adelante)

DOM: Interacción con HTML

El DOM (Document Object Model) es la forma en que JavaScript accede y modifica los elementos HTML de una página web. Es lo que hace que las páginas web sean interactivas.

¿Qué es el DOM?

Imagina el HTML como un árbol. JavaScript puede navegar por este árbol y cambiar lo que ve.

Ejemplo HTML

<div id="contenedor">
    <h1>Hola Mundo</h1>
    <p class="texto">Esto es un párrafo</p>
</div>

Seleccionar elementos

Por ID (getElementById)

const elemento = document.getElementById("contenedor");
console.log(elemento);

Selecciona el elemento con id="contenedor"

Por clase (getElementsByClassName)

const elementos = document.getElementsByClassName("texto");
console.log(elementos[0]);

Selecciona todos los elementos con class="texto"

Selector CSS moderno (querySelector)

const elemento = document.querySelector("#contenedor");
const elementos = document.querySelectorAll(".texto");
console.log(elemento);

querySelector es más flexible y moderno.

Modificar contenido HTML

Cambiar el texto (textContent)

const titulo = document.getElementById("mi-titulo");
titulo.textContent = "Nuevo título";
// El título en la página ahora dice "Nuevo título"

Cambiar HTML (innerHTML)

const contenedor = document.getElementById("contenedor");
contenedor.innerHTML = "<p>Nuevo contenido</p>";

innerHTML permite insertar HTML completo.

Modificar estilos CSS

Cambiar estilos directamente

const elemento = document.getElementById("caja");
elemento.style.backgroundColor = "blue";
elemento.style.fontSize = "20px";
elemento.style.color = "white";

Nota: las propiedades CSS con guión se escriben en camelCase.

Eventos: Reaccionar a acciones del usuario

Un evento es algo que pasa (click, escribir, pasar el ratón, etc.). JavaScript puede reaccionar a estos eventos.

Evento click

<button id="mi-boton">Haz clic aquí</button>

<script>
    const boton = document.getElementById("mi-boton");
    
    boton.addEventListener("click", function() {
        console.log("¡El botón fue presionado!");
    });
</script>

addEventListener escucha un evento y ejecuta código cuando ocurre.

Eventos comunes

// Click del ratón
elemento.addEventListener("click", function() { });

// El ratón entra en el elemento
elemento.addEventListener("mouseover", function() { });

// El ratón sale del elemento
elemento.addEventListener("mouseout", function() { });

// Cuando se carga la página
document.addEventListener("DOMContentLoaded", function() { });

// Cuando escribes en un input
input.addEventListener("input", function() { });

// Cuando envías un formulario
formulario.addEventListener("submit", function() { });

Ejemplo completo interactivo

Contador simple

<!-- HTML -->
<p>Contador: <span id="numero">0</span></p>
<button id="aumentar">+</button>
<button id="disminuir">-</button>

<!-- JavaScript -->
<script>
    let contador = 0;
    const numeroSpan = document.getElementById("numero");
    const botonAumentar = document.getElementById("aumentar");
    const botonDisminuir = document.getElementById("disminuir");
    
    botonAumentar.addEventListener("click", function() {
        contador++;
        numeroSpan.textContent = contador;
    });
    
    botonDisminuir.addEventListener("click", function() {
        contador--;
        numeroSpan.textContent = contador;
    });
</script>

Este es un ejemplo completo que demuestra cómo el JavaScript hace reactiva una página.

Consejos para Aprender JavaScript

✅ Practica constantemente

La mejor forma de aprender programación es practicando. Escribe código todos los días, aunque sea poco.

✅ Usa la consola del navegador

Presiona F12 y prueba pequeños fragmentos de código en la consola. Es tu mejor amigo al aprender.

✅ Lee documentación

La documentación oficial de JavaScript (MDN Web Docs) es excelente. No tengas miedo de consultarla.

✅ Crea proyectos pequeños

Después de cada concepto, crea un pequeño proyecto. Una calculadora, un juego simple, una todolist, etc.

✅ Lee código de otros

Ver cómo otros resuelven problemas te enseña nuevas formas de pensar. Lee código en GitHub.

✅ No memorices, entiende

No necesitas memorizar toda la sintaxis. Entiende los conceptos, la sintaxis la aprenderás con la práctica.

✅ Sé paciente contigo mismo

Aprender a programar toma tiempo. No es fácil al principio, pero cada día entenderás más. ¡Persevera!

Próximos Pasos en tu Aprendizaje

1. Domina los Básicos

Asegúrate de entender variables, funciones, condicionales y bucles. Estos son fundamentales.

2. Manipula el DOM

Crea proyectos pequeños que cambien la página según acciones del usuario.

3. Aprende Objetos y Arrays avanzado

Entiende cómo trabajar con estructuras de datos más complejas.

4. Fetch API

Aprende a obtener datos de internet y mostrarlos en tu página.

5. Frameworks (React, Vue)

Una vez que domine JS, aprende un framework moderno.

Resumen

Has aprendido los conceptos fundamentales de JavaScript. Desde variables y funciones hasta la manipulación del DOM. Este es el inicio de tu viaje como programador.

Recuerda: la consistencia es la clave. Practica todos los días, construye proyectos pequeños y no tengas miedo de cometer errores. Cada error es una lección.

¡Ahora es tiempo de programar! 🚀