Qué es el operador nullish coalescing

Fácil - 1 min. lectura

Nullish coalescing (??) es un nuevo operador que se introdujo con la versión 2020 de ECMAScript.

Este operador es una mejora del operador OR (||), por ello, antes de conocer nullish coalescing conozcamos como funciona el operador OR con un simple ejemplo.

En muchas ocasiones usamos el operador OR para establecer un valor por defecto cuando una propiedad no está definida.

const value
const finalValue = value || 1 // 1

Pero, ¿qué pasaría si value fuese 0?

const value=0
const finalValue = value || 1 // 1

Al contrario de lo que cabría esperar, el valor que nos devuelve finalValue es 1, ya que 0 es un valor falsy y por lo que javascript estaría evaluando algo como false || true devolviendo este segundo operante.

Este comportamiento es el esperado por el lenguaje, pero a veces puede ocasionarnos algunos bugs por no conocer como se comporta javascript con los valores falsy.

Para evitar esto, podemos usar operador nullish coalescing.

const value=0
const finalValue = value ?? 1 // 0

Ten en cuenta que este operador podría no estar soportado por algunos navedadores ya que es relativamente nuevo.