AD

¿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 Udemy

Enlace de afiliado. No te cuesta nada extra.

🟨Lecciones de JavaScript
Lección 22 / 69

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.

JavaScript
SALIDA

💡 Todo lo que pases a console.log() aparece en la salida de abajo.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)