ExpertiDict

JavaScript · Intermediário · Português · Técnico

atribuição lógica

/atɾibujˈsɐ̃w̃ ˈlɔʒikɐ/substantivo

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

Veja também

Todos os termos de JavaScript