Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Incremento não recebe boolean?

Achei interessante essa parte:

let incremento = binding.value || 90;

Até agora quando vejo expressões assim entendo que é uma condição que retorna true ou false.

Testando no console reparei que nesse caso o comportamento é diferente, se passar uma string vazia e outra coisa ele escolhe a outra coisa.

Se passar uma string com 1 espaço em branco e outra coisa, ele pega a string com espaço em branco.

Se fizer com && o resultado é o contrário...não captei a lógica ainda...

Alguém tem uma explicação mais aprofundada para isso para ajudar fixar na memória?

Desde já muito obrigado!

2 respostas
solução!

Oi Guilherme, tudo bem?

Esse operador ||, quando utilizado numa atribuição de variável, faz uma verificação de valores. Ou seja, se existir binding.value (não for nulo, ou undefined, ou algo do tipo), ele atribui esse valor a variável incremento, caso não exista esse valor, ele retornará 90.

Uma string vazia, nesse caso, não é um valor válido, logo, ele irá escolher a outra coisa. Portanto:

let value = '' || 90; // irá retornar 90

Já uma string com um espaço em branco, é uma string válida, não é nulo/vazia, possui um conteúdo. Por isso que retorna essa string com espaço em branco:

let value = ' ' || 90; // irá retornar a string com espaço em branco

Agora, o comportamento && é diferente. Se o primeiro valor da expressão for válido, ele irá imprimir o segundo valor. Ou seja:

let value = 20 && 90; // irá retornar o 90

Isso é bem comum para fazer verificações, por isso que com a string com espaço em branco retorna o segundo valor, porque é uma string de fato válida. Portanto:

let value = ' ' && 90; // como a string com espaço branco é válida, irá retornar o 90

Espero ter ajudado, bons estudos =)

Que da hora!!!

Muito obrigado pela explicação Giovanna, não ficou nenhuma dúvida, vou repassar para meus colegas aqui na empresa que também ficaram com a mesma dúvida, também vou salvar a sua resposta no meu Notion para referência futura.

Muito agradecido pelo conhecimento que você passou.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software