JavaScript · Intermediário · Português · Técnico
atribuição lógica
Operadores ||=, &&= e ??= que combinam teste e atribuição: só atribuem quando a condição do operador lógico correspondente permite. Evitam um if só para preencher padrões.
Onde usar
Útil em objetos de configuração e caches, como config.timeout ??= 3000. Em code review, escolha ??= em vez de ||= quando 0 ou string vazia são valores válidos.
Em código
const cfg = { tempo: 0, nome: null };
cfg.tempo ||= 30; // 30, sobrescreveu o 0
cfg.nome ??= 'x'; // 'x'
cfg.nome &&= 'y'; // 'y'
console.log(cfg);Exemplos
Troquei o if por uma atribuição lógica para preencher o padrão.
Aqui eu quero ??= porque zero é um valor válido.
Cuidado
Usar ||= para preencher valores quando 0 ou '' devem ser mantidos; troque por ??=.
Sinônimos
logical assignment