DEV Community

Cover image for Javascript: El operador nullish-coalescing
Matías Hernández Arellano
Matías Hernández Arellano

Posted on • Originally published at matiashernandez.dev

1 1

Javascript: El operador nullish-coalescing

Este artículo fue originalmente escrito en https://matiashernandez.dev

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

Por cierto, puedes aprender más sobre ¿Qué es Babel y cómo funciona? en este artículo en FreeCodeCamp en español

En otra nota más, en este episodio de Café con Tech te cuento que es la especificación Ecma y el TC39

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.

const foo = null ?? 'mensaje por defecto'
console.log(foo) // 'mensaje por defecto'
Enter fullscreen mode Exit fullscreen mode

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.

falsy es un valor que se considera false (false). En Javascript existen sólo 6 valores falsy: undefined, null, NaN, 0, "" (string vacio) y false

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

Veamos un ejemplo:

onst 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
Enter fullscreen mode Exit fullscreen mode

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

Footer Social Card.jpg
✉️ Únete a Micro-bytes 🐦 Sígueme en Twitter ❤️ Apoya mi trabajo

AWS Q Developer image

Your AI Code Assistant

Ask anything about your entire project, code and get answers and even architecture diagrams. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Start free in your IDE

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay