The double ampersand (&&) is used to represent Logical AND operator. It is a binary operator and expects two operands.
let result = operand1 && operand2;
Logical AND operator works in three ways:
1. Both operands are boolean values.
Logical AND operator returns true
when both operands are true
. If one or both operands is false, it returns false
.
operand1 | operand2 | operand1 && operand2 |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
let x = true, y = false; console.log(x && y); //false
2. Both operands are relational expressions.
Logical AND operator returns true
when both operands evaluates to true
. If one or both operands evaluates to false
, it returns false
.
let number = 48; let divisibleBySix = number%2===0 && number%3===0; if(divisibleBySix){ console.log('48 is divisible by 6.'); }else{ console.log('48 is not divisible by 6.'); }
Output
48 is divisible by 6.
3. Both operands evaluate to a truthy or falsy value.
In JavaScript, the following are considered falsy values:
These six values work as false
value.
Apart from the falsy values, all other values are truthy values. For example, objects, arrays, etc.
Logical AND operator starts by evaluating the left operand. If the value of the left operand is falsy. In that case, it returns that falsy value and does not evaluate the right operand. On the other hand, if the value of the left operand is truthy, then logical AND operator evaluates the right operand and returns the value of the right operand. This behavior of logical AND operator is used in the following scenarios:
If you want to execute a code when the condition is true
, then instead of using the if
statement, use the following code:
let a = 10, b = 10; function show(){ console.log("Both are equal."); } if(a === b){ //Call show() only if a is equal to b show(); } (a === b) && show(); //This code will do the same thing.
Output
Both are equal. Both are equal.