0Pricing
JavaScript Academy · Aula

Coalescência nula com ??

Forneça valores padrão apenas para null e undefined.

Coalescência nula com ?? é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 4 aulas no total.

Fornecendo valores padrão

É comum querer um valor alternativo quando um valor está ausente. O operador de coalescência nula oferece uma forma clara de fornecer valores padrão somente quando necessário.

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

O operador ??

O operador de dois pontos de interrogação retorna o valor do lado direito somente quando o lado esquerdo é null ou undefined.

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

Por que não usar ||

O OU lógico || usa um valor alternativo para qualquer valor falso, incluindo 0, "" e false, o que costuma estar errado para dados reais.

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

Caso da cadeia de caracteres vazia

Com ||, uma cadeia de caracteres vazia intencional é substituída; com ??, ela é mantida porque "" não é nulo nem indefinido.

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

O valor falso é preservado

Um valor real false permanece com ??, mas seria substituído por ||.

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

Lendo config com segurança

?? é ideal para configurações em que 0 ou uma cadeia vazia são opções válidas que o usuário pode escolher intencionalmente.

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

Funciona com variáveis

Ele funciona com qualquer expressão, retornando o primeiro operando que não é nulo nem indefinido.

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

Avaliação em curto-circuito

Assim como || e &&, ?? usa avaliação em curto-circuito: se o lado esquerdo não for nulo nem indefinido, o lado direito nunca será avaliado.

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

Não pode ser combinado diretamente com && ou ||

Combinar ?? com && ou || sem parênteses gera um erro de sintaxe, para evitar ambiguidades.

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

Parâmetros padrão de função versus ??

Os parâmetros padrão só se aplicam quando um argumento é undefined. ?? também trata null passado explicitamente.

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"

Quando escolher cada um

Use ?? quando 0, "" ou false forem valores válidos que precisam ser mantidos. Use || somente quando qualquer valor falso dever usar um valor alternativo.

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

Verificação rápida

Compare os operadores.

Recapitulação

O operador ?? retorna o lado direito somente quando o lado esquerdo é null ou undefined, preservando 0, "" e false. Isso o torna mais seguro que || para fornecer valores padrão em dados reais. Ele usa avaliação em curto-circuito e não pode ser combinado com &&/|| sem parênteses.

Perguntas Frequentes

A aula “Coalescência nula com ??” é grátis?

Sim — o texto completo de “Coalescência nula com ??” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 4 aulas no total.

O que vou aprender em “Coalescência nula com ??”?

Forneça valores padrão apenas para null e undefined. Você pratica JavaScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar JavaScript Academy?

Nenhuma experiência prévia é necessária. JavaScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Coalescência nula com ??”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de JavaScript Academy?

Sim. Cada aula de JavaScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Encadeamento opcional com o operador ?.
  2. Coalescência nula com ??
  3. Combinando ?. e ??
  4. Chamadas opcionais e acesso por índice
← Voltar para JavaScript Academy