Entendiendo el DOM
¿Para qué aprender JavaScript?
¿Qué es DOM y Window Object?
Explorando Nodos del DOM
Seleccionando y Accesando a Elementos del DOM
Consultando el DOM con getElementById y querySelector
Navegación efectiva entre nodos
Manipulando Elementos del DOM
Modificando atributos y propiedades
Modificando texto en HTML
Modificando estilos en HTML
Modificando la visibilidad de elementos HTML
Creación de elementos con HTML Strings e insertAdjacentElement()
Agregando elementos con innerHTML e insertAdjacentHTML()
Creación de elementos con createElement()
Remover elementos con remove() y removeChild()
Clonación y reemplazo de elementos con cloneNode y replaceChild
Manipulando Eventos en el DOM
Entendiendo eventos y tipos: Burbuja, Captura y Propagación
Agregar y eliminar escuchadores de eventos o Event Listeners
El objeto evento o eventObject
Manejo de entradas de formulario y validación
Delegación de eventos y prevención de comportamiento predeterminado
Creando un Administrador de Tareas
Añadir tareas desde un formulario
Eliminar y editar tareas del DOM
Almacenamiento y carga de datos en localStorage
Eliminar y editar tareas del almacenamiento local
Inspeccionando y solucionando errores en el código
Personalizando la interfaz del administrador de tareas
Aún hay más por aprender
Asincronía en JavaScript
¿Cómo funciona el JavaScript Engine?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
La comprensión de la programación en JavaScript, especialmente en cuanto a la programación síncrona y asíncrona, es crucial para cualquier programador que desee desarrollar aplicaciones web eficientes y optimizadas. JavaScript, como lenguaje interpretado por el navegador, tiene su propio motor (JavaScript Engine) que gestiona la ejecución del código. Vamos a adentrarnos en los conceptos fundamentales que permiten a JavaScript operar de manera sincronizada y asincronizada.
Antes de entrar en el funcionamiento síncrono y asíncrono, es esencial entender dos componentes clave del JavaScript Engine:
Memory Heap: Este es el área de memoria donde se almacenan todas las variables, funciones y objetos creados en JavaScript. No tiene un orden específico, lo cual permite al motor de JavaScript acceder a estas variables según sea necesario.
Call Stack: Es una estructura de datos en forma de pila (stack) utilizada para realizar un seguimiento de las llamadas a funciones en un programa. Permite que JavaScript ejecute funciones una por una, respetando el orden en que fueron llamadas. Por ejemplo, si se llama a la función holaMundo
que a su vez llama a miNombreEsDiego
, el “call stack” ejecutará holaMundo
primero y, al finalizar, ejecutará miNombreEsDiego
.
En el contexto de la programación síncrona, estas funciones se ejecutan una por una, es decir, una tarea a la vez. Esto puede llevarnos a lo que se conoce como Stack Overflow, que ocurre cuando el call stack se sobrecarga más allá de su capacidad máxima permitida.
Por defecto, JavaScript es síncrono, pero ciertas tareas pueden realizarse de manera asíncrona para mejorar el rendimiento del programa. Para esto, JavaScript utiliza otras herramientas del navegador.
La Web API es un conjunto de APIs provistas por el navegador que facilita la ejecución asíncrona de ciertas funciones. Cuando una función asíncrona es llamada, esta se envía a la sección de Web API. Aquí, se ejecutan simultáneamente mientras otras funciones siguen procesándose en el call stack.
Web API: Maneja funciones asíncronas fuera del call stack. Por ejemplo, setTimeout
es una función que usa Web API para retrasar la ejecución de una función.
Queue y Event Loop: Una vez que una función enviada a Web API termina su trabajo, se mueve a una sala de espera conocida como queue. El event loop monitorea constantemente el call stack y, cuando este está vacío, transfiere las tareas del queue al call stack para su ejecución.
Analicemos un ejemplo común que usa setTimeout
para demostrar el concepto:
function varFunction() {
console.log(1);
setTimeout(() => {
console.log(2);
}, 0);
console.log(3);
}
varFunction();
Ejecución paso a paso:
setTimeout
se llama, pero su ejecución se difiere y se maneja en la Web API.setTimeout
espera.setTimeout
ingresa al call stack desde el queue y se imprime 2.Las promesas y las palabras clave async/await son métodos más avanzados y comunes para manejar asincronía en JavaScript:
Promesas: Representan una operación que aún no se ha completado, pero se completará en el futuro. Facilitan la escritura de código asíncrono que es más claro y manejable.
Async/Await: Permite escribir código asíncrono que se lee como código síncrono, mejorando la comprensión y depuración del mismo.
La comprensión de estos mecanismos no solo mejora tus capacidades de programación, sino que también asegura que tus aplicaciones web se mantengan rápidas y responsivas. ¡Sigue explorando y practicando la escritura de código asíncrono para dominar completamente JavaScript!
Aportes 2
Preguntas 0
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?