Javascript: El operador nullish-coalescing

- 2 min read

Nullish Coalescing (operador fusión nula)

El operador nullish coalescing fue agregado recientemente a Javascript (ES2020) pero ya tiene un gran soporte en los diferentes navegadores, pero en caso de que necesites soportar un navegador más antiguo, nullish coalescing está soportado por Babel desde hace mucho -

undefined

sponsor

El contenido de este sitio es y será siempre gratuito para todos. Ayudame a mantenerlo así convirtiendote en auspiciador.
Matias Hernández Logo

Tu producto o servicio podría estar aquí

Puedes encontrar la documentación y propuesta de este operador en los siguientes enlaces

El operador fusión nula (nullish coalescing) es un operador lógico que retorna el valor utilizado en el lado derecho de la expresión cuando el lado izquierdo es null o undefined, en caso contrario, retorna el lado izquierdo.

¿Qué?. Básicamente, es un operador que evalua si el valor existe o no y define un valor de retorno.

javascript
					
						
const foo = null ?? 'mensaje por defecto'
console.log(foo) // 'mensaje por defecto'
					
				

Quizá esta sintaxis te recuerde un patrón bastante usado en javascript, el uso del operador lógico OR ||.

La gran diferencia está en que este operador retorna el lado derecho de la operación cuando el lado izquierdo es un valor falsy.

Este operador es usualmente utilizado para definir valores por defecto durante la asignación de una variables.

Veamos un ejemplo:

javascript
					
						
const data = {
  configuration: {
    nullValue: null,
    width: 400,
    time: 0,
    text: "",
    isOpen: false,
  },
};

const undefinedValue =
  data.configuration.undefinedValue ?? "un valor por defecto"; // un valor por defecto
const nullValue = data.configuration.nullValue ?? "un valor por defecto"; // un valor por defecto
const text = data.configuration.text ?? "un valor por defecto"; // ''
const time = data.configuration.time ?? 10; // 10
const isOpen = data.configuration.isOpen ?? true; // false
					
				

Como siempre, puedes ver el demo en este enlace. y comparar el funcionamiento del operador ?? versus el operador || (operador OR)

También te invito a ver un video sobre esta característica en grabada para egghead.io

😃 Thanks for reading!

Did you like the content? Found more content like this by joining to the Newsletter or following me on Twitter