Cómo utilizar encadenamiento opcional en JavaScript - CableNaranja

JavaScript: Cómo utilizar encadenamiento opcional

¡Comparte nuestro contenido!

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 4)

El encadenamiento opcional de JavaScript nos permite analizar el valor de una propiedad o función dentro de un objeto o serie de objetos sin tener que revisar cada referencia. Funciona de manera similar al operador de encadenamiento pero con la diferencia de que siempre regresará undefined. Esto es especialmente útil cuando se tiene un objeto del que no hay garantía de que tenga todas las propiedades que necesitamos ¿Listo para saber cómo se usa? ¡Manos a la obra!

Uso básico del operador de encadenamiento opcional

El operador de encadenamiento opcional es ?. y se utiliza antes de la propiedad o función a revisar. Imaginemos un objeto vacío llamado persona.

let persona = {}

Suponiendo que esta persona tiene una mascota, tal vez queremos saber el nombre de esa.

let nombremascota = persona.mascota.nombre;

Entonces al mostrarlo en la consola.

console.log(nombremascota);

Hemos provocado un error.

Cómo utilizar encadenamiento opcional en JavaScript - CableNaranja

Para evitar esto, utilizaremos el operador de encadenamiento opcional antes de la propiedad nombre. Observemos la modificación al código.

let nombremascota = persona.mascota?.nombre;

Como ahora sabemos, el encadenamiento opcional siempre enviará un undefined, así que ahora podemos tomar el control.

if(nombremascota==undefined) nombremascota = "No disponible";

Entonces al imprimirlo en la consola.

console.log(nombremascota);

Ya no tendremos ese horrible error.

Cómo utilizar encadenamiento opcional en JavaScript - CableNaranja

Encadenamiento opcional con funciones

Suponiendo que ahora queremos escuchar el ladrido de la mascota.

let ladrido = persona.mascota.ladrar();
console.log(ladrido);

Por supuesto, obtendremos un error de nuevo.

Cómo utilizar encadenamiento opcional en JavaScript - CableNaranja

Así que, aplicamos nuevamente el encadenamiento opcional dos veces, uno para el objeto y otro para la función.

let ladrido = persona.mascota?.ladrar?.();

Definimos el texto que queremos mostrar en caso de no existir dicha función.

if(ladrido==undefined) ladrido = "No disponible";

Y mostramos otra vez en consola.

console.log(ladrido);

Como podemos ver, el error ha desaparecido.

Cómo utilizar encadenamiento opcional en JavaScript - CableNaranja

Combinando con el operador de fusión nulo

El operador de fusión nulo nos permitirá definir el valor que necesitemos en caso de obtener undefined, de esta manera podemos evitar utilizar un if.

Intentemos ahora acceder a la edad de la mascota.

let edadmascota = persona.mascota.edad;
console.log(edadmascota);

Por supuesto, eso genera un error nuevamente.

Cómo utilizar encadenamiento opcional en JavaScript - CableNaranja

El operador de fusión nulo se conforma con dos signos de interrogación ?? así que lo aplicamos al final de nuestra sentencia, no sin antes utilizar el operador de encadenamiento opcional sobre la edad.

let edadmascota = persona.mascota?.edad ?? "Sin edad";

Lo mostramos en consola.

console.log(edadmascota);

Y con eso quitamos el error.

Cómo utilizar encadenamiento opcional en JavaScript - CableNaranja

¡Y eso es todo por hoy, amigos! Puedes probar el código en JSFiddle, editarlo o ajustarlo a tus necesidades ¿Te ha resultado? Déjanos saber en los comentarios aquí abajo, en nuestra cuenta de twitter @cablenaranja7 o en nuestra página de facebook.

¡Comparte nuestro contenido!

Entradas relacionadas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *