- 1

Fundamentos de JavaScript para Principiantes
02:49 - 2

Instalación y Configuración de JavaScript en Visual Studio Code
04:10 - 3

Instalación y configuración de Visual Studio Code y Node.js en Windows
05:11 - 4

Variables y Buenas Prácticas en JavaScript
09:23 - 5

Tipos de Datos en JavaScript: Primitivos y Complejos
07:59 - 6

Manipulación de Strings en JavaScript: Escritura, Concatenación y Substrings
07:08 - 7

Números y Operaciones Matemáticas en JavaScript
09:30 - 8

Conversión de Tipos en JavaScript: Implícita y Explícita
04:33 - 9

Conversión de Tipos en JavaScript: Explícita e Implícita
12:20
Scope y Contextos de Ejecución en JavaScript
Clase 24 de 55 • Curso de Fundamentos de JavaScript
Contenido del curso
- 10

Operadores de Comparación en JavaScript: Igualdad y Desigualdad
06:12 - 11

Operadores Lógicos en Programación: AND, OR y NOT
04:33 - 12

Estructuras Condicionales: Uso de IF, ELSE y ELSE IF en JavaScript
07:45 - 13

Juego de Adivinanza: Programación con Estructuras Condicionales
09:36 - 14

Estructura y uso del condicional Switch en programación
12:10 - 15

Ciclo For: Iteración de Listas y Uso de Console.log en JavaScript
07:31 - 16

Iteración con for-of en JavaScript para arrays y strings
04:26 - 17

Iteración sobre Objetos con forIn en JavaScript
07:38 - 18

Uso del ciclo while para iteración en programación
03:56 - 19

Ciclos doWhile: Estructura y Diferencias con While
03:13
- 20

Funciones en JavaScript: Cómo Calcular Precios con Descuentos
11:39 - 21

Diferencias entre Funciones y Métodos en JavaScript
10:01 - 22

Funciones Puras e Impuras en Programación: Conceptos y Ejemplos
11:22 - 23

Arrow Functions y Enlace Léxico en JavaScript
10:31 - 24

Scope y Contextos de Ejecución en JavaScript
12:21 - 25

Closures y Ámbito Léxico en JavaScript
08:00 - 26

Fundamentos del Desarrollo Web: Frontend y Backend
02:11
- 27

Arrays: Propiedades, Acceso y Creación en Programación
09:09 - 28

Mutabilidad e inmutabilidad en arrays: conceptos y ejemplos prácticos
07:56 - 29

Métodos push y pop para modificar arrays en JavaScript
04:33 - 30

Métodos map y forEach en JavaScript: Uso y Ejemplos Prácticos
12:53 - 31

Métodos Filter y Reduce en JavaScript: Uso y Ejemplos Prácticos
11:34 - 32

Métodos find y findIndex en JavaScript: Uso y ejemplos prácticos
03:52 - 33

Uso del método slice para extraer porciones de un array en JavaScript
05:28 - 34

Uso del Spread Operator en JavaScript: Copia, Combinación y Más
07:11
- 35

Programación Orientada a Objetos en JavaScript: Conceptos y Práctica
06:48 - 36

Creación y Manipulación de Objetos en JavaScript
09:05 - 37

Función constructora y gestión de instancias en JavaScript
11:36 - 38

Clases en JavaScript: Creación y Uso de Objetos con Sintaxis Moderna
06:17 - 39

Programación Orientada a Objetos en JavaScript: Clases y Prototipos
02:16 - 40

Prototipos y Herencia en JavaScript: Construcción y Uso Práctico
15:38 - 41

Métodos y herencia prototípica en JavaScript
10:43 - 42

Uso de "this" en Clases y Funciones Constructoras
05:36 - 43

Validación de Usuarios en una Red Social: Algoritmo Básico
12:26 - 44

Implementación de la Función Sign-In y Validación de Usuario
09:00
- 45

Programación Síncrona y Asíncrona en JavaScript
04:37 - 46

Promesas en JavaScript: Asincronía y Manejo de Estados
11:36 - 47

Uso de Async/Await para Promesas Asíncronas en JavaScript
09:51 - 48

Peticiones asíncronas con for await en JavaScript
06:19 - 49

Fundamentos de HTTP: Cliente-Servidor y Métodos de Petición
03:12 - 50

Peticiones HTTP en Frontend: Uso de Fetch y Análisis en Network
07:02 - 51

Peticiones HTTP en JavaScript: Fetch, GET, POST y DELETE
14:26 - 52

Envío de Datos al Servidor con JavaScript y Fetch API
10:40 - 53

Eliminar Posts con JavaScript y Delegación de Eventos
10:15 - 54

Manejo de IDs en JavaScript para eliminar artículos del DOM
02:23 - 55

Actualizaciones y Nuevas Funciones en JavaScript
01:48
¿Qué son los contextos de ejecución y la cadena de alcances?
Los contextos de ejecución y la cadena de alcances son conceptos fundamentales en JavaScript, ya que determinan cómo y dónde se accede a las variables dentro del código. Al usar las palabras clave var, let, y const, es esencial comprender estas diferencias: el tipo de scope y el comportamiento de hoisting. Esto nos ayudará a tomar decisiones informadas sobre cuándo y cómo utilizar cada una.
¿Por qué es importante el scope en JavaScript?
El scope es crucial porque determina el alcance y la vida útil de una variable. Con var, las variables tienen un scope a nivel de función, mientras que let y const se limitan al bloque en el que se declaran. Esta distinción es vital para evitar errores y entender cómo se ejecuta el código.
Por ejemplo, consideremos el siguiente código:
const productName = "laptop";
const price = 899;
const brand = "techCode";
function getProductInfo() {
const productName = "smartphone";
const price = 499;
return `${productName} costs ${price} and is of brand ${brand}`;
}
console.log(getProductInfo());
Aquí, el console.log imprime "smartphone costs 499 and is of brand techCode". Las variables productName y price dentro de la función sobrescriben las del contexto global, mientras que brand se toma desde el exterior debido a la cadena de alcances.
¿Cómo funciona el contexto de ejecución?
En JavaScript, el contexto de ejecución puede pensarse como muñecas rusas: el contexto global es la muñeca más grande y los contextos locales son las más pequeñas dentro de ella.
- Contexto global: Incluye todas las variables y código que está por fuera de funciones o bloques.
- Contextos locales: Son los bloques definidos, por ejemplo, dentro de una función.
¿Cómo se determina el contexto en un código?
A través del uso de llaves { }, podemos identificar los bloques que delimitan los contextos locales. Todo lo que cae fuera de estos bloques pertenece al contexto global.
let userPoints = 80;
function evaluatePoints() {
if (userPoints < 100) {
console.log("Below average");
} else {
console.log("Above average");
}
}
console.log(evaluatePoints());
En el código anterior:
userPointsyconsole.log(evaluatePoints())forman parte del contexto global.evaluatePoints()es un contexto local que contiene su propio flujo de ejecución.
¿Qué es el scope chain o cadena de alcances?
La cadena de alcances define cómo JavaScript encuentra las variables. Un contexto local puede acceder a variables en contexto global, pero no al revés. La búsqueda de variables funciona de adentro hacia afuera, asegurándose de que no haya acceso entre contextos locales iguales.
¿Cuándo ocurre el error 'variable no definida'?
Esto ocurre cuando un contexto local busca una variable que no existe ni localmente ni en ningún contexto superior.
const globalVariable = "global1";
function local1() {
console.log(globalVariable); // Accede correctamente a "global1"
console.log(localVariable); // Error: localVariable no está definida
function local2() {
const carrot = "🥕";
console.log(`local2: ${carrot}`);
}
function local3() {
console.log(local3Variable); // Error aquí también
}
local2();
local3();
}
console.log(local1());
En este ejemplo, intentar acceder a localVariable y local3Variable en contextos que no las definen o que no tienen acceso a ellas desencadena dichos errores.
Comprendiendo los errores de variable no definida
Es importante internalizar la restricción de que los contextos iguales no pueden comunicarse entre sí sin que compartan un contexto padre donde esté definida la variable de interés. Este entendimiento permitirá evitar múltiples errores en implementaciones más complejas, asegurando un manejo eficiente de cómo y dónde se posicionan y utilizan las variables.
Motívate a seguir profundizando en estos conceptos. La práctica y comprensión de cómo JavaScript maneja el scope y los contextos de ejecución te harán un desarrollador más hábil y capaz de escribir código más eficiente y sin errores.