JavaScript y DOM Básicos

JavaScriptJavaScriptBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este Laboratorio (Lab), te adentrarás en el mundo del desarrollo web a través de los ojos de Alex, un joven desarrollador web encargado de crear un rastreador financiero personal dinámico. El objetivo es construir una aplicación amigable para el usuario que permita a los usuarios ingresar y rastrear sus gastos e ingresos diarios. El objetivo es claro: desarrollar una interfaz que sea intuitiva y atractiva, asegurando que los usuarios puedan administrar fácilmente sus finanzas sin problemas. Este proyecto no solo tiene como objetivo simplificar la gestión financiera personal, sino también presentarte los conceptos fundamentales de JavaScript y la manipulación del DOM (Document Object Model).

Trabajaremos a través de 5 laboratorios (labs) para completar el proyecto EconoMe.

Animación de la descripción general del proyecto EconoMe

Puntos de conocimiento:

  • Declaraciones de variables (let, const)
  • Conceptos básicos de manipulación del DOM (obtener elementos, modificar el contenido de los elementos)
  • Escucha de eventos (addEventListener)

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript(("JavaScript")) -.-> javascript/DOMManipulationGroup(["DOM Manipulation"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/AdvancedConceptsGroup -.-> javascript/es6("ES6 Features") javascript/DOMManipulationGroup -.-> javascript/dom_select("DOM Selection") javascript/DOMManipulationGroup -.-> javascript/dom_manip("DOM Manipulation") javascript/DOMManipulationGroup -.-> javascript/event_handle("Event Handling") javascript/DOMManipulationGroup -.-> javascript/dom_traverse("DOM Traversal") subgraph Lab Skills javascript/variables -.-> lab-290729{{"JavaScript y DOM Básicos"}} javascript/data_types -.-> lab-290729{{"JavaScript y DOM Básicos"}} javascript/es6 -.-> lab-290729{{"JavaScript y DOM Básicos"}} javascript/dom_select -.-> lab-290729{{"JavaScript y DOM Básicos"}} javascript/dom_manip -.-> lab-290729{{"JavaScript y DOM Básicos"}} javascript/event_handle -.-> lab-290729{{"JavaScript y DOM Básicos"}} javascript/dom_traverse -.-> lab-290729{{"JavaScript y DOM Básicos"}} end

JavaScript Básico

JavaScript es un lenguaje simple, orientado a objetos y basado en eventos. Se descarga desde el servidor al cliente y se ejecuta en el navegador.

Se puede utilizar con HTML y en la Web, y más ampliamente en servidores, PC, laptops, tabletas y teléfonos inteligentes.

Sus características incluyen:

  • Típicamente se utiliza para escribir scripts del lado del cliente.
  • Se utiliza principalmente para agregar comportamiento interactivo en páginas HTML.
  • Es un lenguaje interpretado, se ejecuta a medida que se interpreta.

Entonces, ¿cómo incluimos JavaScript en HTML?

El método de inclusión es similar al de CSS y se puede hacer de tres maneras:

  • Directamente en las etiquetas HTML, para código JavaScript especialmente corto.
  • Utilizando la etiqueta <script>, el código JavaScript se puede incrustar en la sección <head> y <body> del documento HTML.
  • Utilizando un archivo JavaScript externo, escribe el código del script JavaScript en un archivo con la extensión .js e inclúyelo configurando el atributo src de la etiqueta <script>.

Por ejemplo, si presionamos F12, podemos ver que esta página incluye muchos archivos JavaScript externos, y al hacer clic en Event Listeners (Escuchadores de eventos), podemos observar que hay muchos tipos de eventos dentro de la página.

Ejemplo de escuchadores de eventos de JavaScript

Ahora, agreguemos la etiqueta <script> a ~/project/index.html para incluir el archivo script.js.

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>EconoMe</title>
    <link rel="stylesheet" href="./style.css" />
    <!-- Agrega la etiqueta de script a index.html -->
    <script src="./script.js"></script>
  </head>
  <body></body>
</html>

A continuación, aprendamos cómo definir variables en JavaScript.

¿Qué son las Variables?

Las variables se pueden considerar como contenedores para almacenar información. En programación, utilizamos variables para almacenar valores de datos. JavaScript es un lenguaje de tipado dinámico, lo que significa que no es necesario declarar el tipo de una variable. El tipo se determinará automáticamente durante la ejecución del programa.

Declaración de Variables

En JavaScript, se pueden utilizar las palabras clave var, let o const para declarar variables:

  • var: Antes de ES6, var era la forma principal de declarar variables y tiene ámbito de función (function scope).
  • let: Introducida en ES6, let permite declarar variables locales con ámbito de bloque (block-scoped).
  • const: También introducida en ES6, se utiliza para declarar una constante que no se puede cambiar una vez declarada.

Por ejemplo:

var name = "Alice"; // Usando var para declarar una variable
let age = 30; // Usando let para declarar una variable
const city = "London"; // Usando const para declarar una constante

Tipos de Variables

En JavaScript, hay varios tipos de datos diferentes:

  • String: Datos de texto, como "Hello, World!".
  • Number: Números enteros o de punto flotante, como 42 o 3.14.
  • Boolean: true o false.
  • Object: Puede almacenar múltiples valores o estructuras de datos complejas.
  • null y undefined: Tipos especiales que representan "sin valor" y "valor no definido", respectivamente.

Uso de Variables

Una vez que se declaran las variables, se pueden utilizar en el programa:

console.log(name); // Muestra en consola: Alice
console.log("Age: " + age); // Muestra en consola: Age: 30
console.log(city + " is a beautiful city"); // Muestra en consola: London is a beautiful city

El método estático console.log() muestra un mensaje en la consola.

Ejemplo de declaración de variables en JavaScript

Manipulación del DOM

El DOM (Documento Objecto Modelo) es una interfaz multiplataforma e independiente del lenguaje que trata los documentos HTML y XML como una estructura de árbol, donde cada nodo es una parte del documento, como elementos, atributos y contenido de texto.

Acceso a Elementos del DOM

Para manipular el contenido de una página web, primero debes acceder a los elementos en el árbol del DOM. Puedes utilizar varios métodos para acceder a los elementos, como por su ID, nombre de clase o nombre de etiqueta:

let elementById = document.getElementById("elementId"); // Acceder a un elemento por su ID
let elementsByClassName = document.getElementsByClassName("className"); // Acceder a una colección de elementos por su nombre de clase
let elementsByTagName = document.getElementsByTagName("tagName"); // Acceder a una colección de elementos por su nombre de etiqueta

Agrega el siguiente código al archivo ~/project/script.js del proyecto EconoMe:

const form = document.getElementById("record-form");
const recordsList = document.getElementById("records-list");
const totalIncomeEl = document.getElementById("total-income");
const totalExpenseEl = document.getElementById("total-expense");
const balanceEl = document.getElementById("balance");

Modificación del Contenido de un Elemento

Una vez que tienes una referencia a un elemento, puedes modificar su contenido. Las propiedades innerHTML y textContent se utilizan comúnmente para este propósito.

Por ejemplo, para insertar <p>New HTML content</p> en un elemento div con id=content y reemplazar "Hello" con "New text content" en un elemento span con id=info, utilizarías el siguiente código JavaScript:

Ejemplo de modificación del contenido del DOM

Adición y Eliminación de Elementos

Puedes agregar o eliminar elementos dinámicamente en la página utilizando JavaScript.

Por ejemplo:

// Crear un nuevo elemento
let newElement = document.createElement("div");
newElement.textContent = "Hello, world!";
document.body.appendChild(newElement); // Agregar el nuevo elemento al cuerpo del documento
document.body.removeChild(newElement); // Eliminar el elemento del cuerpo del documento
  • En un documento HTML, el método document.createElement() crea el elemento HTML.
  • El método document.body.appendChild() agrega el nuevo elemento al final del elemento <body>.
  • El método document.body.removeChild() elimina el elemento del elemento <body>.
✨ Revisar Solución y Practicar

Manejo de Eventos

Los escuchadores de eventos (event listeners) te permiten responder a las acciones del usuario.

addEventListener("event", function () {});

Como clics, pasar el cursor por encima o pulsaciones de teclas:

elementById.addEventListener("click", function () {
  console.log("Element was clicked!");
});
Gif de demostración del manejo de eventos

Después de aprender las operaciones básicas del DOM, puedes agregar el siguiente código al archivo ~/project/script.js del proyecto EconoMe:

document.addEventListener("DOMContentLoaded", function () {
  const form = document.getElementById("record-form");
  const recordsList = document.getElementById("records-list");
  const totalIncomeEl = document.getElementById("total-income");
  const totalExpenseEl = document.getElementById("total-expense");
  const balanceEl = document.getElementById("balance");
  let draggedIndex = null; // Índice del elemento arrastrado
});

El evento DOMContentLoaded en JavaScript se dispara cuando el documento HTML inicial se ha cargado y analizado completamente, sin esperar a que las hojas de estilo, las imágenes y los submarcos terminen de cargarse. Esto lo convierte en un evento importante para ejecutar código JavaScript tan pronto como el DOM esté listo, asegurando que el script interactúe con elementos HTML completamente analizados.

En este laboratorio (lab) no es necesario previsualizar el efecto en este momento. Lo revisaremos después de completar el código en los siguientes pasos.

✨ Revisar Solución y Practicar

Resumen

En este laboratorio (lab), has comenzado el viaje de construir una parte básica pero fundamental de un seguimiento de finanzas personales con Alex. Has establecido las bases para una aplicación web dinámica configurando el entorno del proyecto y utilizando JavaScript para manipular el DOM, mostrando los estados financieros iniciales. La principal lección es comprender cómo JavaScript interactúa con los elementos HTML para cambiar dinámicamente el contenido de una página web, sentando las bases para características más interactivas en los siguientes pasos.

Este enfoque práctico no solo refuerza tu comprensión de JavaScript y la manipulación del DOM, sino que también simula escenarios reales de desarrollo web, preparándote para proyectos más complejos en el futuro.