¿Ya dominas lo básico? Un curso estructurado de JavaScript es la vía rápida para dar el salto.
Ver cursos de JavaScript en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Crear variables
- 03Condicionales (sentencias if)
- 04Bucles (sentencias for)
- 05Crear funciones
- 06Trabajar con arrays
- 07Trabajar con objetos
- 08Bucles (sentencias while)
- 09Trabajar con cadenas de texto
- 10Usar clases (programación orientada a objetos)
- 11Gestión de errores (try...catch)
- 12Desestructuración y sintaxis de propagación
- 13Código asíncrono (Promise / async y await)
- 14Métodos avanzados de arrays (filter y reduce)
- 15La sentencia switch
- 16El operador ternario
- 17Herencia (extender clases)
- 18Cómo escribir comentarios
- 19Operadores lógicos (AND, OR, NOT)
- 20Constantes (valores de solo lectura con const)
- 21Dividir y unir cadenas (split y join)
- 22Sintaxis segura frente a null (?? y ?.)
- 23Buscar en arrays y colecciones (includes y find)
- 24Transformar arrays con map
- 25Arrays bidimensionales (datos en forma de tabla)
- 26Crear una clase de error propia
- 27Argumentos por defecto (valores iniciales de los parámetros)
- 28Usar Set (colecciones)
- 29Verificar con assert (tu primer paso hacia las pruebas)
- 30Funciones de orden superior (pasar una función como argumento)
- 31Pilas y colas (estructuras de datos básicas)
- 32Fundamentos de la conversión de tipos
- 33Introducción a las expresiones regulares
- 34El algoritmo de búsqueda binaria
- 35Construir un cifrado César (desplazar letras)
- 36Entender cómo funciona la ordenación de burbuja
- 37Construir y mostrar fechas (año, mes y día)
- 38Escribir varias pruebas unitarias juntas (casos de prueba)
- 39Acelerar cálculos con memoización (caché)
- 40Normalizar cadenas (trim y unificar mayúsculas)
- 41La diferencia entre copia superficial y copia profunda
- 42Fundamentos de los Enum (tipos enumerados)
- 43Aplanar arrays (flatten)
- 44Invertir una cadena y detectar un palíndromo
- 45Emparejar dos arrays (una operación zip)
- 46Redondear números (floor, ceil y round)
- 47Cadenas de varias líneas (plantillas literales)
- 48Devolver varios valores desde una función (desestructurar arrays)
- 49Calcular el MCD y el MCM (algoritmo de Euclides)
- 50Dar formato a números (alinear dígitos y decimales)
- 51Lógica de limpieza con try/catch/finally
- 52Escribir funciones genéricas que no dependen del tipo
- 53Fundamentos de Map (un objeto para pares clave-valor)
- 54Generar números aleatorios
- 55Operaciones a nivel de bits (AND, OR, XOR y desplazamientos)
- 56Usar static (propiedades y métodos estáticos)
- 57Esperar un tiempo fijo (setTimeout y await)
- 58Cuidado con el error de redondeo en coma flotante
- 59Transformar y aplanar de una vez con flatMap()
- 60FizzBuzz (el ejercicio clásico)
- 61Comprobar si un número es primo
- 62Operaciones de conjuntos con Set (unión, intersección y diferencia)
- 63Convertir bases numéricas (binario y hexadecimal)
- 64Comprobar que los paréntesis casan (aplicación de pilas)
- 65Comprobar un anagrama
- 66Comprobar si un año es bisiesto
- 67Convertir temperaturas (Celsius ⇄ Fahrenheit)
- 68Calcular la descomposición en factores primos
- 69[Aplicado] Construye una lista de tareas sencilla
Sintaxis segura frente a null (?? y ?.)
En esta lección aprenderás la sintaxis de JavaScript segura frente a null (?? y ?.) para manejar sin riesgo datos que quizá no existan. Está dirigida a quien busca «encadenamiento opcional en JavaScript» o «null frente a undefined en JavaScript».
?? (el operador de coalescencia nula) usa el valor de su derecha solo cuando el de la izquierda es null o undefined. ?. (el encadenamiento opcional) devuelve undefined en lugar de lanzar un error cuando un valor no existe. Son potentes en situaciones donde pueden faltar datos: por ejemplo, «si no hay dirección registrada, no te pares con un error; muestra "sin dirección"». Es una sintaxis relativamente nueva, pero ya imprescindible en el código moderno.
El código de ejemplo muestra que, incluso cuando usuario.direccion es null, usuario.direccion?.ciudad no lanza error y simplemente devuelve undefined, que después se sustituye por un texto de reserva con ?? "sin dirección". Combinar ?. y ?? te permite acceder con seguridad a una «propiedad que puede existir o no» y a la vez ofrecer un texto alternativo, todo de una vez.
Un tropiezo habitual al empezar es la diferencia entre ?? y ||. || recurre al lado derecho también cuando el izquierdo es un «valor falsy» como 0 o la cadena vacía "", pero ?? solo lo hace con null y undefined. En un caso como «quiero mostrar 0 cuando la puntuación es 0», necesitas ?? o tendrás un resultado no deseado.
En el desarrollo real no es raro que falte parte de los datos que devuelve una API. Dominar el encadenamiento opcional y la coalescencia nula te permite escribir código seguro sin un if de comprobación a cada paso: una técnica práctica muy valorada para evitar que la aplicación se caiga por errores.
💡 Todo lo que pases a console.log() aparece en la salida de abajo.
