freeCodeCamp/guide/portuguese/javascript/logical-operators/index.md

3.8 KiB

title localeTitle
Logical Operators Operadores lógicos

Operadores lógicos

Operadores lógicos comparam valores booleanos e retornam uma resposta booleana. Existem dois tipos de operadores lógicos - Logical AND e Logical OR. Esses operadores geralmente são escritos como && para AND e || para OU.

Lógica E (&&)

O operador AND compara duas expressões. Se o primeiro avaliar como "truthy" , a instrução retornará o valor da segunda expressão. Se o primeiro avaliar como "falsy" , a instrução retornará o valor da primeira expressão.

Quando apenas envolver valores booleanos ( true ou false ), ele retornará true se apenas as duas expressões forem verdadeiras. Se uma ou ambas as expressões forem falsas, toda a instrução retornará false.

true && true //returns  the second value, true 
 true && false //returns the second value, false 
 false && false //returns the first value, false 
 123 && 'abc' // returns the second value, 'abc' 
 'abc' && null //returns the second value, null 
 undefined && 'abc' //returns the first value, undefined 
 0 && false //returns the first value, 0 

OR lógico (||)

O operador OR compara duas expressões. Se a primeira for avaliada como "falsy", a instrução retornará o valor da segunda segunda expressão. Se o primeiro avaliar como "truthy", a instrução retornará o valor da primeira expressão.

Quando apenas envolver valores booleanos ( true ou false ), retorna true se uma das expressões for verdadeira. Ambas as expressões podem ser verdadeiras, mas somente uma é necessária para ser verdadeira como resultado.

true || true //returns the first value, true 
 true || false //returns the first value, true 
 false || false //returns the second value, false 
 123 || 'abc' // returns the first value, 123 
 'abc' || null //returns the first value, 'abc' 
 undefined || 'abc' //returns the second value, 'abc' 
 0 || false //returns the second value, false 

Avaliação de curto-circuito

&& e || comportam-se como operadores de curto-circuito.

No caso do AND lógico, se o primeiro operando retornar falso, o segundo operando nunca é avaliado e o primeiro operando é retornado.

No caso do OR lógico, se o primeiro valor retornar true, o segundo valor nunca é avaliado e o primeiro operando é retornado.

Não lógico (!)

O operador NOT não faz nenhuma comparação como os operadores AND e OR. Além disso, ele é operado apenas em 1 operando.

A '!' (exclamação) é usada para representar o operador NOT.

Uso de operadores NOT
  1. conversão da expressão em booleano.
  2. retorna o inverso do valor booleano obtido na última etapa.
var spam = 'rinki'; //spam may be equal to any non empty string 
 var booSpam = !spam; 
 /*returns false 
  since when a non-empty string when converted to boolean returns true 
  inverse of which is evaluated to false. 
 */ 
 
 var spam2 = ''; //spam2 here is equal to empty string 
 var booSpam2 = !spam2; 
 /*returns true 
  since when a empty string when converted to boolean returns false 
  inverse of which is evaluated to true. 
 */ 

Dicas:

Ambos os operadores lógicos retornarão o valor da última expressão avaliada. Por exemplo:

"cat" && "dog" //returns "dog" 
 "cat" && false //returns false 
 0 && "cat"  //returns 0 (which is a falsy value) 
 
 "cat" || "dog" //returns "cat" 
 "cat" || false //returns "cat" 
 0 || "cat" //returns "cat" 

Note que onde && retorna o primeiro valor, || retorna o segundo valor e vice-versa.

Mais Informações: