Social
Node.js
Operadores "optional chaining" y "nullish coalescing"
Mon Apr 20 2020 19:00:00 GMT-0500 (Peru Standard Time)

Los operadores Optional Chaining y Nullish Coalescing llegan oficialmente en la v14.0.0 de Node.js liberada días atras. Puedes descargar esta versión acá: Node.js v14.0.0

Optional chaining

Al utilizar el operador ya no será necesario agregar condicionales para verificar si una propiedad existe o forma parte de un objeto. Veamos un ejemplo, queremos acceder a la propiedad longitud dentro del objeto ubicacion que a su vez esta dentro del objeto usuario. Si estos objetos son construidos dinámicamente o llegar desde una base de datos, podemos tener casos que dicha propiedad no exista y es ahí donde se hace uso de las condiciones && verificando que cada objeto cuente con las propiedades necesarias hasta llegar a la propiedad deseada pero ahora ya no será necesario ya que podemos reemplazar las condiciones por algo menos extenso.

// Antes

const usuario = {
	nombre: "Juan",
	apellido: "Perez",
	ubicacion: {
		latitud: 10,
		longitud: 20
	}
};

/* Antes usamos condiciones para cada nivel en el objeto */
const longitudA = usuario && usuario.ubicacion && usuario.ubicacion.longitud;
// longitudA = 20

/* Ahora podemos agregar ? junto a cada objeto/propiedad con esto le decimos al interprete que puede o no existir dicha propiedad.*/
const longitudB = usuario?.bicacion?.longitud;
// longitudB = 20

Nullish Coalescing

Con el operador Nullish Coalescing podemos obtener el valor ubicado a la derecha de la comparación si el valor de la izquierda es null o undefined.

Veamos un ejemplo, tenemos la variable sumatoria a la cual no le asignamos valor alguno, por lo que quedará como undefined. Al hacer uso del nuevo operador Nullish Coalescing, se verifica que la variable de la izquierda es undefined por lo que asignará a resultado el valor 33.

let sumatoria;  // 
const resultado = sumatoria ?? 33; // el valor que se asignará a resultado será 33.
Author
Carlos G. Rodriguez

Autor y creador de NodeHispano