0Pricing
JavaScript Academy · Lección

Coalescencia nula con ??

Proporcione valores predeterminados solo para null y undefined.

Coalescencia nula con ?? es una lección gratuita de JavaScript Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de JavaScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de JavaScript Academy incluye 4 lecciones en total.

Proporcionar valores predeterminados

A menudo necesitará un valor predeterminado cuando falte un valor. El operador de coalescencia nullish ofrece una forma clara de proporcionar valores predeterminados solo cuando sea necesario.

const name = undefined;
console.log(name ?? "Guest"); // "Guest"

El operador ??

El operador de dos signos de interrogación devuelve el valor de la derecha únicamente cuando el lado izquierdo es null o undefined.

console.log(null ?? "fallback");      // "fallback"
console.log(undefined ?? "fallback"); // "fallback"
console.log("hi" ?? "fallback");      // "hi"

Por qué no utilizar ||

El OR lógico || utiliza el valor predeterminado ante cualquier valor falsy, incluidos 0, "" y false, lo que a menudo es incorrecto con datos reales.

console.log(0 || 10);  // 10  (probably unwanted)
console.log(0 ?? 10);  // 0   (keeps the real value)

Caso de cadena vacía

Con ||, una cadena vacía intencionada se reemplaza; con ??, se conserva porque "" no es nullish.

const note = "";
console.log(note || "none"); // "none"
console.log(note ?? "none"); // ""

false se conserva

Un valor false real se conserva con ??, pero || lo reemplazaría.

const enabled = false;
console.log(enabled ?? true); // false
console.log(enabled || true); // true

Leer la configuración de forma segura

?? es ideal para configuraciones en las que 0 o una cadena vacía son opciones válidas que el usuario puede elegir intencionadamente.

function getVolume(settings) {
  return settings.volume ?? 50;
}
console.log(getVolume({ volume: 0 })); // 0

Funciona con variables

Funciona con cualquier expresión y devuelve el primer operando que no sea nullish.

let cached = null;
const value = cached ?? computeValue();
function computeValue() { return 99; }
console.log(value); // 99

Evaluación de cortocircuito

Al igual que || y &&, ?? utiliza la evaluación de cortocircuito: si el lado izquierdo no es nullish, el lado derecho nunca se evalúa.

function side() { console.log("called"); return 1; }
const x = "ready" ?? side(); // side() never runs
console.log(x);

No se puede combinar directamente con && o ||

Combinar ?? con && o || sin paréntesis produce un error de sintaxis, para evitar ambigüedades.

const a = true, b = null;
// const c = a || b ?? 1; // SyntaxError
const c = (a || b) ?? 1;
console.log(c);

Parámetros predeterminados de función frente a ??

Los parámetros predeterminados solo se aplican cuando un argumento es undefined. ?? también gestiona null cuando se pasa explícitamente.

function greet(name = "Guest") { return "Hi " + name; }
console.log(greet(null)); // "Hi null"
function greet2(name) { return "Hi " + (name ?? "Guest"); }
console.log(greet2(null)); // "Hi Guest"

Cuándo elegir cada uno

Utilice ?? cuando 0, "" o false sean valores válidos que deba conservar. Utilice || solo cuando cualquier valor falsy deba activar el valor predeterminado.

const retries = 0;
console.log(retries ?? 3); // 0 kept

Comprobación rápida

Compare los operadores.

Repaso

El operador ?? devuelve el lado derecho únicamente cuando el izquierdo es null o undefined, y conserva 0, "" y false. Por eso es más seguro que || para proporcionar valores predeterminados con datos reales. Utiliza la evaluación de cortocircuito y no se puede combinar con &&/|| sin paréntesis.

Preguntas frecuentes

¿La lección «Coalescencia nula con ??» es gratis?

Sí — el texto completo de «Coalescencia nula con ??» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de JavaScript Academy, actualiza a CoddyKit PRO. El curso de JavaScript Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Coalescencia nula con ??»?

Proporcione valores predeterminados solo para null y undefined. Practicas JavaScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar JavaScript Academy?

No se requiere experiencia previa. JavaScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Coalescencia nula con ??»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de JavaScript Academy?

Sí. Cada lección de JavaScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Encadenamiento opcional con el operador ?.
  2. Coalescencia nula con ??
  3. Combinación de ?. y ??
  4. Llamadas opcionales y acceso mediante índices
← Volver a JavaScript Academy