Chegamos a mais um post da minha saga de estudos em JavaScript.
No post de hoje irei falar sobre os operadores lógicos: E (AND) que utilizaremos &&, o operador lógico OU (OR) que utilizaremos || e o operador de negação (Not) que utilizaremos !.
Os operadores lógicos servem para combinar verificações.
E (AND) - &&
O operador lógico E que em inglês se chama AND, é utilizado usando dois &&.
Na utilização deste operador, iremos realizar as verificações e se TODAS resultarem em true, o retorno de toda a expressão será true, e com isso, todo o bloco de código dentro do if será executado.
const senha = 'oi123456'
if (senha.length >= 5 && senha.includes('4')) {
console.log('Senha forte!')
} else {
console.log('Senha fraca!')
}
// Output
Senha forte!
No exemplo acima, foram feita duas verificações na expressão dentro dos parênteses, a primeira foi a expressão antes do símbolo do operador lógico, que seria senha.length >= 5, verificando se a senha possui pelo menos 5 caracteres. Como essa verificação resultou em true, passou para a segunda verificação que foi senha.includes('4'), verificando se o 4 estava presente na senha, que também retornou em true, com isso, toda a expressão resultou em true e o bloco de código dentro do if foi executado, e o código do else, foi ignorado.
Caso a expressão usada tivesse somente uma das condições resultando em true, toda a expressão resultaria em false e o bloco de código do else seria executado e o bloco do if seria ignorado. Conforme exemplo abaixo.
const senha = 'oi7890'
if (senha.length >= 5 && senha.includes('4')) {
console.log('Senha forte!')
} else {
console.log('Senha fraca!')
}
// Output
Senha fraca!
OU (OR) - ||
O operador lógico OU que em inglês se chama OR é utilizado usando dois ||
Na utilização deste operador, iremos realizar as verificações e se PELO MENOS UMA DELAS resultar em true, o retorno de toda a expressão será true, e com isso, todo o bloco de código dentro do if será executado.
const senha = 'oi4'
if (senha.length >= 5 || senha.includes('4')) {
console.log('Senha forte!')
} else {
console.log('Senha fraca!')
}
// Output
Senha forte!
No exemplo acima, foram feita duas verificações na expressão dentro dos parênteses, a primeira foi a expressão antes do símbolo do operador lógico, que seria senha.length >= 5, verificando se a senha possui pelo menos 5 caracteres. Como essa verificação resultou em false, passou para a segunda parte da verificação que é senha.includes('4'), verificando se a senha contém o 4, como essa verificação resultou em true, o bloco de código do if, foi executado e do else foi ignorado.
No caso do uso do operador lógico OR, somente irá cair no else, se nenhuma das duas condições resultar em true, conforme exemplo abaixo.
const senha = 'oi4'
if (senha.length >= 5 || senha.includes('5')) {
console.log('Senha forte!')
} else {
console.log('Senha fraca!')
}
// Output
Senha fraca!
Existem ainda a possibilidade de termos verificações utilizando os dois operadores lógicos AND - && e OR - || na mesma expressão verificada no else if abaixo.
Exemplo:
const senha = 'oi12345'
if (senha.length >= 12 && senha.includes('1')) {
} else if (senha.length >= 8 || senha.includes('1') && senha.length >= 5) {
console.log('Senha forte')
} else {
console.log('Senha fraca, a senha deve ter no mínimo 8 caracteres')
}
// Output
Senha forte
Devemos interpretar esse else if da seguinte forma:
As operações antes do operador lógico && deve ser tradada como uma expressão e a depois do && como outra expressão.
Primeiro verificamos se uma dessas condições senha.length >= 8 || senha.includes('1') resulta em true, como senha.length >= 8 resulta em false, mas senha.includes('1'), resulta em true, toda essa primeira expressão resulta em true e com isso, passamos para a segunda parte da verificação, que é o que está após o &&.
Como senha.length >= 5 retorna em true, toda expressão dos parênteses resulta em true e o bloco de código do else if será executado.
Operador de Negação (NOT) - !
O operador not, operador de negação, é utilizado através do sinal !.
Normalmente verificamos uma condição esperando que o retorno seja true, mas em algum momento, podemos executar uma verificação esperando o retorno false.
Quando utilizamos o operador de negação na frente de um Boolean, esse operador irá inverter o valor.
Se o operador for inserido antes de uma operação que resulte em true, ele irá trocar esse true para false e vice-versa.
console.log(true) // true
console.log(false) // false
console.log(!true) // false
console.log(!true) // true
Abaixo irei declarar uma variável para saber se o usuário está logado, esta variável irá receber false como valor.
Criarei um if onde preciso executar o bloco de código somente no caso do usuário não estiver logado.
Para isso, basta negarmos a afirmação, com o operador not !.
Isso acontece porque no if, o código só é executado quando a expressão verificada (dentro dos parênteses) resulta em true.
Se não utilizarmos o operador not, essa expressão irá retornar em false, pois ela foi criada com esse valor.
Quando inserimos o not, a expressão resultará em true.
O fato de utilizarmos o operador not, não faz com que o valor da variável seja trocado, ela permanecerá valendo false, nós apenas estamos trocando o output da expressão dentro dos parênteses.
let isUserLoggedIn = false
if (!isUserLoggedIn) {
console.log('Favor efetuar o login')
} else {
console.log('Usuário já logado')
}
// Output
Favor efetuar o login
Vou deixar o link para a documentação da MDN sobre operadores lógicos e de negação
Esse foi mais um post da minha saga de estudos em JavaScript Vanilla. Espero que estejam gostando!
Qualquer dúvida ou sugestão, vocês me encontram nas minhas redes sociais:
Top comments (0)