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
10:31 min - 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
Viendo ahora
Proyecto: Crea una red social parte 2
Resumen
¿Cómo implementar la función sign-in en JavaScript?
Iniciar sesión exitosamente en una aplicación requiere más que simplemente ingresar un nombre de usuario y una contraseña. Debemos respaldar el proceso con un sistema de validación robusto. En esta clase, exploraremos cómo implementar una función sign-in en JavaScript, que valida la información proporcionada por el usuario y proporciona mensajes personalizados.
¿Cómo estructurar la función sign-in?
La función sign-in es crucial para manejar la autenticación del usuario. Se debe construir de tal manera que:
- Reciba dos parámetros: el nombre de usuario y la contraseña.
- Valide estos datos contra una base de datos preexistente.
- Proporcione mensajes significativos basados en el resultado de la validación.
Este es un ejemplo de cómo estructurar la función:
function signIn(usernameProvided, passwordProvided) { if (validateUser(usernameProvided, passwordProvided)) { alert(`Bienvenido a tu cuenta, ${usernameProvided}.`); console.log(userTimeline); } else { alert("Ups, usuario o contraseña incorrectos."); } } function validateUser(username, password) { for (let user of usersDatabase) { if (user.username === username && user.password === password) { return true; } } return false; }
¿Qué desafíos enfrenta la validación de usuario?
Uno de los problemas comunes mencionados involucra el proceso de validación. Si el primer usuario en la base de datos no coincide, el sistema falsamente asume que ninguna otra validación debería ocurrir. Para corregir esto, es crucial eliminar cualquier uso prematuro de false, asegurando que toda la base de datos se valide correctamente antes de devolver este estado.
¿Cómo manejar el retorno en la función de validación?
Es importante manejar adecuadamente los retornos en una función de validación. El error común es regresar false inmediatamente sin recorrer toda la base de datos de usuarios. La función debe continuar iterando sobre la lista incluso después de una invalidación inicial, asegurando que todas las entradas potenciales se verifiquen:
function validateUser(username, password) { for (let user of usersDatabase) { if (user.username === username && user.password === password) { return true; // Retorno al encontrar una coincidencia } } return false; // Si no hay coincidencias después de recorrer todos los usuarios }
¿Cómo podemos mejorar la experiencia de usuario?
Para enriquecer la experiencia del usuario, la función signIn puede personalizar los mensajes que recibe el usuario, utilizando su nombre de usuario proporcionado. Esto promueve una interacción más positiva y personalizada:
- El saludo puede incluir el nombre de usuario.
- Los errores muestran un mensaje claro y conciso, indicando un fallo en la autenticación sin intimidar al usuario.
¿Por qué es vital la práctica continua?
La creación de funcionalidades como la autenticación son esenciales en cualquier aplicación web. Mantener tus habilidades actualizadas y practicar con diferentes escenarios garantiza que te mantengas preparado para construir sistemas más seguros y eficientes. Te animamos a continuar explorando y practicando, mejorando tus conocimientos para estar preparado para desafíos más complejos en el desarrollo web.
Te esperamos en el próximo nivel de tu carrera, siempre motivado para crecer y evolucionar en este emocionante campo del desarrollo. ¡Sigue adelante y felices codificaciones!