Operatorii logici compară valorile booleene și returnează un răspuns boolean. Există două tipuri de operatori logici – AND logic și OR logic. Acești operatori sunt adesea scrise ca && pentru AND și || pentru SAU.

Logic ȘI (&&)

Operatorul AND compară două expresii. Dacă primul evaluează ca „Adevărat”, declarația va returna a doua expresie. Dacă primul evaluează ca „Fals”, declarația va returna valoarea primei expresii.

Când implică doar valori booleene (fie true sau false), returnează adevărat numai dacă ambele expresii sunt adevărate. Dacă una sau ambele expresii sunt false, întreaga declarație va reveni falsă.

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 logic (||)

Operatorul OR compară două expresii. Dacă prima se evaluează ca „fals”, declarația va returna a doua expresie a doua. Dacă primul se evaluează ca „adevărat”, declarația va returna valoarea primei expresii.

Când implică doar valori booleene (fie true sau false), returnează adevărat dacă oricare dintre expresii este adevărată. Ambele expresii pot fi adevărate, dar doar una este necesară pentru a deveni adevărat ca rezultat.

ad-banner
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

Evaluarea scurtcircuitului

&& și || se comportă ca un operator de scurtcircuit.

În cazul AND logic, dacă primul operand returnează fals, al doilea operand nu este niciodată evaluat și primul operand este returnat.

În cazul OR OR logic, dacă prima valoare returnează adevărat, a doua valoare nu este niciodată evaluată și primul operand este returnat.

Logic NU (!)

Operatorul NOT nu face nicio comparație ca operatorii AND și OR. Mai mult decât atât, este operat numai pe un operand.

Un „!” (semnul exclamării) este utilizat pentru reprezentarea operatorului NOT.

Utilizarea operatorilor NU

  1. conversia expresiei în boolean.
  2. returnează inversul valorii booleene obținute în ultimul pas.
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.
*/

Sfaturi:

Ambii operatori logici vor returna valoarea ultimei expresii evaluate. De exemplu:

"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"

Rețineți că unde && returnează prima valoare, || returnează a doua valoare și invers.