Show tasks
El lenguaje JavaScript
Una introducción
Una introducción a JavaScript
Manuales y especificaciones
Editores de Código
Consola de desarrollador
Fundamentos de JavaScript
¡Hola, mundo!
Mostrar una alerta
Mostrar una alerta con un script externo
Estructura del código
El modo moderno, "use strict"
Variables
Trabajando con variables.
Dando el nombre correcto
¿const mayúsculas?
Tipos de datos
Comillas
Interacción: alert, prompt, confirm
Una página simple
Conversiones de Tipos
Operadores básicos, matemáticas
Las formas sufijo y prefijo
Resultado de asignación
Conversiones de tipos
Corregir la adición
Comparaciones
Comparaciones
Ejecución condicional: if, '?'
if (un string con cero)
El nombre de JavaScript
Muestra el signo
Reescribe el 'if' como '?'
Reescriba el 'if..else' con '?'
Operadores Lógicos
¿Cuál es el resultado de OR?
¿Cuál es el resultado de las alertas aplicadas al operador OR?
¿Cuál es el resultado de AND?
¿Cuál es el resultado de las alertas aplicadas al operador AND?
El resultado de OR AND OR
Comprueba el rango por dentro
Comprueba el rango por fuera
Un pregunta acerca de "if"
Comprueba el inicio de sesión
Operador Nullish Coalescing '??'
Bucles: while y for
Último valor del bucle
¿Qué valores serán mostrados por el bucle while?
¿Qué valores serán mostrados por el bucle "for"?
Muestra números pares en el bucle
Reemplaza "for" por "while"
Repite hasta que la entrada sea correcta
Muestra números primos
La sentencia "switch"
Reescribe el "switch" en un "if"
Reescribe "if" en "switch"
Funciones
¿Es "else" requerido?
Reescribe la función utilizando '?' o '||'
Función min(a, b)
Función pow(x,n)
Expresiones de función
Funciones Flecha, lo básico
Reescribe con funciones de flecha
Especiales JavaScript
Calidad del código
Debugging en el navegador
Estilo de codificación
Estilo pobre
Comentarios
Código ninja
Automatización de pruebas con Mocha
¿Qué está mal en el test?
Polyfills y transpiladores
Objetos: lo básico
Objetos
Hola, objeto
Verificar los vacíos
Suma de propiedades de un objeto
Multiplicar propiedades numéricas por 2
Referencias de objetos y copia
Recolección de basura
Métodos de objeto, "this"
Usando el "this" en un objeto literal
Crea una calculadora
Encadenamiento
Constructor, operador "new"
Dos funciones – un objeto
Crear nueva Calculadora
Crear nuevo Acumulador
Encadenamiento opcional '?.'
Tipo Symbol
Conversión de objeto a valor primitivo
Tipos de datos
Métodos en tipos primitivos
¿Puedo agregar una propiedad a un string?
Números
Suma números del visitante
¿Por qué 6.35.toFixed(1) == 6.3?
Repetir hasta que lo ingresado sea un número
Un bucle infinito ocasional
Un número aleatorio entre min y max
Un entero aleatorio entre min y max
Strings
Hacer mayúscula el primer carácter
Buscar spam
Truncar el texto
Extraer el dinero
Arrays
¿El array es copiado?
Operaciones en arrays.
LLamados en un contexto de array
Suma de números ingresados
Subarray máximo
Métodos de arrays
Transforma border-left-width en borderLeftWidth
Filtrar un rango
Filtrar rango "en el lugar"
Ordenar en orden decreciente
Copia y ordena un array
Crea una calculadora extensible
Mapa a nombres
Mapa a objetos
Ordena usuarios por edad
Barajar un array
Obtener edad promedio
Filtrar elementos únicos de un array
Crea un objeto a partir de un array
Iterables
Map y Set
Filtrar miembros únicos del array
Filtrar anagramas
Claves iterables
WeakMap y WeakSet
Almacenar banderas "no leídas"
Almacenar fechas de lectura
Object.keys, values, entries
Suma las propiedades
Contar propiedades
Asignación desestructurante
Asignación desestructurante
El salario máximo
Fecha y Hora
Crea una fecha
Muestra en pantalla un día de la semana
Día de la semana europeo
¿Qué día del mes era hace algunos días atrás?
¿Cuál es el último día del mes?
¿Cuántos segundos transcurrieron el día de hoy?
¿Cuantos segundos faltan para el día de mañana?
Cambia el formato a fecha relativa
Métodos JSON, toJSON
Convierte el objeto en JSON y de vuelta
Excluir referencias circulares
Trabajo avanzado con funciones
Recursión y pila
Suma todos los números hasta el elegido
Calcula el factorial
Sucesión de Fibonacci
Generar una lista de un solo enlace
Genere una lista de un solo enlace en orden inverso
Parámetros Rest y operador Spread
Ámbito de Variable y el concepto "closure"
Esta función: ¿recoge los últimos cambios?
¿Qué variables están disponibles?
¿Son independientes los contadores?
Objeto contador
Función en if
Suma con clausuras
¿Es visible la variable?
Filtrar a través de una función
Ordenar por campo
Ejército de funciones
La vieja "var"
Objeto Global
Función como objeto, NFE
Establecer y disminuir un contador
Suma con una cantidad arbitraria de paréntesis
La sintaxis "new Function"
Planificación: setTimeout y setInterval
Salida cada segundo
¿Qué mostrará setTimeout?
Decoradores y redirecciones, call/apply
Decorador espía
Decorador de retraso
Decorador debounce
Decorador throttle
Función bind: vinculación de funciones
Función enlazada como método
Segundo enlace
Propiedad de función después del enlace
Arreglar una función que perdió "this"
Aplicación parcial para inicio de sesión
Funciones de flecha revisadas
Configuración de las propiedades de objetos
Indicadores y descriptores de propiedad
"Getters" y "setters" de propiedad
Prototipos y herencia
Herencia prototípica
Trabajando con prototipo
Algoritmo de búsqueda
¿Donde escribe?
¿Por qué están llenos los dos hámsters?
F.prototype
Cambiando "prototype"
Crea un objeto con el mismo constructor
Prototipos nativos
Agregue el método "f.defer(ms)" a las funciones
Agregue el decorado "defer()" a las funciones
Métodos prototipo, objetos sin __proto__
Añadir toString al diccionario
La diferencia entre llamadas
Clases
Sintaxis básica de `class`
Reescribir como class
Herencia de clase
Error al crear una instancia
Reloj extendido
Propiedades y métodos estáticos.
¿La clase extiende el objeto?
Propiedades y métodos privados y protegidos.
Ampliación de clases nativas
Comprobación de clase: "instanceof"
Extraño instanceof
Los Mixins
Manejo de errores
Manejo de errores, "try...catch"
Finally o solo el código?
Errores personalizados, extendiendo Error
Heredar de SyntaxError
Promesas y async/await
Introducción: callbacks
Promesa
¿Volver a resolver una promesa?
Demora con una promesa
Círculo animado con promesa
Encadenamiento de promesas
Promesa: then versus catch
Manejo de errores con promesas
Error en setTimeout
Promise API
Promisificación
Microtareas (Microtasks)
Async/await
Rescribir usando async/await
Reescribir "rethrow" con async/await
Llamado async desde un non-async
Dangerous Promise.all
Generadores e iteración avanzada
Generadores
Generador pseudoaleatorio
Iteradores y generadores asíncronos
Módulos
Módulos, introducción
Export e Import
Importaciones dinámicas
Temas diversos
Proxy y Reflect
Error al leer una propiedad no existente
Accediendo a array[-1]
Observable
Eval: ejecutando una cadena de código
Calculadora-eval
Currificación
Tipo de Referencia
Verificación de sintaxis