Ir ao conteúdo

Posts recomendados

Postado

Estou estudando JavaScript e me deparei com a uilização de dois pontos de esclamaçã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á fim alguns códigos de colegas, mas não entendi foi nada, fiquei mais perdido que cego em tiroteio.

Postado

Com (!!) você consegue converter uma expressão ou elemento em um booleano (verdadeiro ou falso).


Funciona igual a função Boolean(), como vou demostrar abaixo:

 

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sem título</title>
</head>

<body>

<script>

var a = Boolean(0);
var b = !!0;

var c = Boolean(!!null);
var d = !!null;

var e = Boolean(1);
var f = !!1;

console.log(a);
console.log(b);

console.log(c);
console.log(d);

console.log(e);
console.log(f);

</script>

</body>
</html>

 

Para mais detalhes, o ideal é estudar e pesquisar sobre a função Boolean(), porque na verdade, eles fazem a mesma coisa.


Mas sinceramente, fica difícil pensar em um exemplo prático com isso, em uma situação do dia a dia que utilizando isso facilitaria a vida; apesar de saber que existe bastante gente usando.


Se alguém souber de um exemplo prático do dia a dia, que usando isso facilite a vida, por favor nos avise, pois me interesso em saber.


Abraços.

  • Curtir 2
Postado
10 horas atrás, Marcelo Calazans disse:

Com (!!) você consegue converter uma expressão ou elemento em um booleano (verdadeiro ou falso).


Funciona igual a função Boolean(), como vou demostrar abaixo:

 


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sem título</title>
</head>

<body>

<script>

var a = Boolean(0);
var b = !!0;

var c = Boolean(!!null);
var d = !!null;

var e = Boolean(1);
var f = !!1;

console.log(a);
console.log(b);

console.log(c);
console.log(d);

console.log(e);
console.log(f);

</script>

</body>
</html>

 

Para mais detalhes, o ideal é estudar e pesquisar sobre a função Boolean(), porque na verdade, eles fazem a mesma coisa.


Mas sinceramente, fica difícil pensar em um exemplo prático com isso, em uma situação do dia a dia que utilizando isso facilitaria a vida; apesar de saber que existe bastante gente usando.


Se alguém souber de um exemplo prático do dia a dia, que usando isso facilite a vida, por favor nos avise, pois me interesso em saber.


Abraços.

COMPLEMENTANDO o que eu já tinha escrito...

 

Vou dar um exemplo abaixo, que sinceramente não acho muito prático, mas foram algumas das vezes em que usei isso. Espero que isso ajude a entender melhor o uso do (!!):

 

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sem título</title>
</head>

<body>

<script>

/* Exemplo UM*/
var a = 10;
/* Isso faz a mesma coisa, verifica se uma variável não é zero */
if (a != 0) { alert('não é zero (um)'); }
if (!!a) { alert('não é zero (dois)'); }


/* Exemplo DOIS */
var b = 'cheia';
/* Podemos usar também para ver se uma string está com conteúdo ou não */
if (!!b) {alert("string cheia");} else {alert("string vazia");}


/* Exemplo TRÊS */
var c;
/* Podemos testar se uma variável foi apenas declarada e não usada */
if(!!c) {alert('declarada e usada');} else {alert('apenas declarada');}

</script>

</body>

 

Mas sinceramente acho que podemos viver muito bem sem isso.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!