Get to know MDN better
Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julio de 2020.
El operador nullish coalescing (??) (de coalescencia nula) es un operador lógico que retorna el operando de lado derecho cuando el operando de lado izquierdo es null o undefined, y en caso contrario retorna el operando de lado izquierdo.
El operador nullish coalescing puede ser visto como un caso especial del operador lógico OR (||). Este último retorna el operando de lado derecho si el operando izquierdo es cualquier valor falsy, no solo null o undefined. En otras palabras, si se usa || para proveer algún valor por defecto a otra variable foo, se puede encontrar comportamientos inesperados si se considera algún valor falsy como usable (por ejemplo, '' o 0). Consulte a continuación para más ejemplos.
El operador nullish coalescing tiene la quinta más baja precedencia de operadores, directamente por debajo de || y por arriba del operador condicional (ternario).
No es posible combinar ambos operadores AND (&&) y OR (||) directamente con ??. Un error de sintasix será lanzado en tales casos.
En su lugar, agregue paréntesis para explícitamente indicar la precedencia:
En este ejemplo, proveeremos valores por defecto pero mantendremos los valores que no sean null o undefined.
Antes, cuando se quería asignar un valor por defecto a una variable, un patrón común era usar el operador lógico OR (||):
Sin embargo, debido a que || es un operador lógico booleano, el operando de lado izquierdo fue convertido a un booleano para la evaluación y cualquier valor falsy (incluyendo 0, '', NaN, false, etc.) no fue retornado. Este comportamiento puede causar consecuencias inesperadas si se considera 0, '', o NaN como valores válidos.
El operador nullish coalescing evita esta trampa ya que solo retorna el segundo operando cuando el primero evalúa a null o undefined (pero ningún otro valor falsy):
Así como los operadores OR y AND, la expresión de lado derecho no es evaluada si el lado izquierdo no es null ni undefined.
El operador nullish coalescing trata undefined y null como valores específicos. Así como lo hace el operador de encadenamiento opcional (?.), el cual es útil para acceder a una propiedad de un objeto que puede ser null o undefined. Combinándolos, se puede acceder de manera segura a una propiedad de un objeto que puede ser nulo y proveer un valor por defecto si lo es.
| ECMAScript® 2027 Language Specification # prod-CoalesceExpression |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 11 feb 2025 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.