Contenido del curso
Primeros Pasos
- 5

¡Hola Mundo!
06:13 min - 6

Anatomía de una variable
09:23 min - 7

Tipos de datos: Mutabilidad e inmutabilidad
10:55 min - 8

Paso por valor
11:06 min - 9

Paso por referencia
07:00 min - 10

Creación de strings
11:33 min - 11

Concatenación de strings
08:31 min - 12

Manipulación de strings
12:13 min - 13

Tipo de dato primitivo: number
09:30 min - 14

Conversión a Booleanos
05:08 min - 15

Tipos de datos primitivos: null, undefined, symbol y bigint
07:28 min - 16

Conversión de tipos: Type Casting y Coercion
04:38 min - 17

Conversión de tipos explícita e implícita
12:20 min - 18

Proyecto: Crea un perfil para redes sociales con JavaScript
07:23 min
Funciones y This
- 19

Anatomía de una función
11:39 min - 20

Preguntas a Desarrolladores Senior: ¿Por qué aprender Desarrollo Web?
02:11 min - 21

Funciones vs Métodos
10:01 min - 22

Funciones puras e impuras
11:22 min - 23

Identificador this
11:38 min - 24

Métodos bind, call y apply
10:09 min - 25

Funciones flecha y enlace léxico
Viendo ahora - 26

Implicaciones de duplicar código
03:19 min - 27

Funciones constructoras
10:41 min - 28

10 Tipos de funciones
01:39 min - 29

Objeto window y modo estricto
07:37 min - 30

Tipos de binding
01:11 min - 31

Expresiones vs Sentencias
04:02 min - 32

Proyecto: Crea biografías de personajes con JavaScript
12:51 min
Lógica y ciclos
- 33

Operadores de comparación
06:12 min - 34

Operadores lógicos
04:33 min - 35

Ejecución condicional: if
07:45 min - 36

Proyecto: Adivina el número
09:36 min - 37

Ejecución condicional: ternario
05:24 min - 38

Ejecución condicional: switch
12:08 min - 39

Loop: for
07:31 min - 40

Loop: forEach
03:57 min - 41

Loop: for of
04:26 min - 42

Loop: for in
07:38 min - 43

Loop: while
03:56 min - 44

Loop: do while
03:13 min - 45

Proyecto: Juego adivina la palabra
15:56 min
Fundamentos de arrays y modificación
- 46

Introducción a Arrays
09:09 min - 47

Mutabilidad e inmutabiliad de Arrays
07:56 min - 48

Modificación básica del final con push(), pop()
04:33 min - 49

Ejercicio: Stack de libros
16:03 min - 50

Modificación del principio con shift(), unshift()
10:21 min - 51

Modificación avanzada con splice(), reverse(), sort(), fill()
16:37 min - 52

Proyecto: Juego de cartas
15:37 min - 53

Preguntas a Desarrolladores Senior: Estrategias y métodos de estudio
01:10 min
Iteración de Arrays
- 54

Iteración con map() y forEach()
12:53 min - 55

Filtrado y reducción con filter() y reduce()
11:34 min - 56

Ejercicio: Calificación promedio aprobatoria
05:27 min - 57

Búsqueda de elementos con find() y findIndex()
03:52 min - 58

Ejercicio: Encuentra al ganador de una rifa
11:21 min - 59

Proyecto: Análisis de transacciones
10:55 min - 60

Proyecto: Análisis de transacciones parte 2
08:01 min
Métodos específicos y Operaciones
- 61

Unir y entrelazar con concat(), spread operator y join()
12:05 min - 62

Verificación y evaluación con every() y some()
05:15 min - 63

Métodos de búsqueda con includes(), indexOf() y lastIndexOf()
07:05 min - 64

Ejercicio: Encontrando los índices
11:09 min - 65

Crear copias con slice()
05:28 min - 66

Spread operator: casos de uso
07:11 min
Arrays multidimencionales
Clases y Objetos
- 71

Anatomia de un Objeto
06:48 min - 72

Trabajando con objetos
12:52 min - 73

Función constructora
14:31 min - 74

¿Qué es una clase?
06:17 min - 75

Prototipos y herencias
02:15 min - 76

Herencia en la práctica
15:38 min - 77

Prototipos en la práctica
10:42 min - 78

this en JavaScript
05:36 min - 79

Proyecto: Crea una red social
12:25 min - 80

Proyecto: Crea una red social parte 2
09:00 min
Funciones flecha y enlace léxico
Resumen
¿Qué son las funciones tradicionales y cuándo se usan?
Para entender las arrow functions, es fundamental recordar las funciones tradicionales, aquellas que se suelen enseñar al inicio de cualquier curso de programación. Estas funciones se caracterizan por tener un nombre, parámetros, un cuerpo de ejecución y un llamado, todo estructurado bajo la palabra clave function. Son útiles y muy comunes, pero pueden llegar a ser extensas y, en contextos donde el manejo del this es relevante, se tornan complejas.
¿Cuál es la necesidad de las arrow functions?
Las arrow functions surgieron para ofrecer soluciones más concisas y manejables en algunos contextos importantes. Dos son las principales razones de su existencia:
- Sintaxis más corta: Las arrow functions eliminan la necesidad de la palabra
functiony hacen uso de una flecha (=>) para indicar el cuerpo de ejecución. - Lexical binding: Estas funciones no generan su propio contexto de
this, lo cual puede simplificar ciertos manejos contextuales.
¿Cómo se implementan las arrow functions?
Veamos cómo convertir una función tradicional en una arrow function:
// Función tradicional const saludo = function(nombre) { return `Hola, ${nombre}`; }; // Uso de arrow function const newGreeting = (nombre) => `Hola, ${nombre}`;
¿Cómo simplificar further las arrow functions?
Las arrow functions permiten incluso mayor simplificación con un retorno implícito y eliminación de paréntesis cuando hay un solo parámetro.
// Con retorno implícito const implicitGreeting = nombre => `Hola, ${nombre}`;
Si se manejan múltiples parámetros, los paréntesis no son opcionales:
const saludoCompleto = (nombre, apellido) => `Hola, yo soy ${nombre} ${apellido}`;
¿Qué diferencias hay en el lexical binding?
La gestión del this es particularmente notable al comparar funciones tradicionales y arrow functions. Las funciones tradicionales capturan el contexto durante su ejecución, mientras que las arrow functions utilizan el contexto léxico en el que fueron definidas.
Ejemplo práctico del lexical binding
const fictionalCharacter = { name: 'Uncle Ben', messageTraditional: function(message) { console.log(`${this.name} dice: ${message}`); }, messageArrow: (message) => { console.log(`${this.name} dice: ${message}`); } }; // Resultados esperados fictionalCharacter.messageTraditional('Un gran poder conlleva una gran responsabilidad.'); // Uncle Ben dice: Un gran poder conlleva una gran responsabilidad. fictionalCharacter.messageArrow('Cuidado con el doctor octopus.'); // undefined dice: Cuidado con el doctor octopus.
El uso de this en una arrow function no se refiere al objeto fictionalCharacter, sino al contexto más amplio en el que se encuentra esta función.
¿Qué soluciones hay para evitar errores comunes?
Al trabajar con inglés y otras herramientas, es fácil cometer errores tipográficos. Para esto, es útil usar extensiones que realicen revisiones automáticas, disminuyendo así errores fastidiosos. La consistencia y claridad en el código no solo mejoran la calidad, sino que también reducen tiempos de revisión y depuración.
Finalmente, te invitamos a practicar estos conceptos. Cuéntanos: ¿prefieres utilizar funciones tradicionales o arrow functions, y por qué?