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); // trueLendo 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 })); // 0Funciona 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); // 99Avaliaçã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 keptVerificaçã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
- Encadeamento opcional com o operador ?.
- Coalescência nula com ??
- Combinando ?. e ??
- Chamadas opcionais e acesso por índice