Estou estudando JavaScript e me deparei com a utilização de dois pontos de exclamação, mas confesso que não entendi a lógica para utilização deles.
Uma negação até faz sentido pra mim, mas duas... Eu não consigo ver a aplicação destes em alguma função ou qualquer outro lugar. Tipo:
const isAtivo = true console.log(!!isAtivo)
Define o identificador e é atribuído à ele o valor verdadeiro, daí no console vira falso depois verdadeiro de novo. Qual o sentido disso? Se ele é verdadeiro, pra que trocar pra ter certeza de que realmente é verdadeiro? O mesmo pergunto se for falso.
Compreendo que há as formas para identificar o que pode ser verdadeiro e falso...
console.log('Os verdadeiros...') console.log(!!3) console.log(!!-1) console.log(!!' ') console.log(!![]) console.log(!!{}) console.log(!!Infinity) console.log(!!(isAtivo = true)) console.log('Os falsos...') console.log(!!0) console.log(!!'') console.log(!!null) console.log(!!NaN) console.log(!!undefined) console.log(!!(isAtivo = false))
Isso é muito confuso pra mim. Já vi alguns códigos de colegas, mas não entendi foi nada, fiquei mais perdido que cego em tiroteio.
Gabriel
06/02/2021 19:24