JavaScript provides four operators for logic building:
- AND(&&)
- OR(||)
- NOT(!)
- Nullish Coalescing (??)
To solve the problem in hand, i.e., what is the output of the expression ("Cow" && "Horse")
, we need to understand the rules of the Logical AND(&&) operator.
The Logical AND(&&) Operator Rules
When we write expressions using any operator, the operator gets applied on one or more operands. For the Logical AND(&&) operator, we need at least two operands, like:
Operand1 && Operand2
Now, the rules are:
- The AND(&&) operator checks if the
Operand1
(the left-side/first operand) can be converted(or evaluated) to afalse
. If so, the output result will beOperand1
. - Otherwise, the output result will be
Operand2
.
So, with these rules, we can confidently say:
- The result of (false && false) will be false. Because, the first operand is
false
. - The result of (true && false) will be false. Because, the first operand is NOT
false
. So the second operandfalse
will be returned. - The result of (true && true) will be true. Because, the first operand is NOT
false
. So the second operandtrue
will be returned. - The result of (false && true) will be false. Because, the first operand is
false
.
You can also take a short-cut of these rules and say:
In case of the Logical AND(&&) operator, if any of the operand is false
the output result will be false
. Only when both the operands are true
, then the result will be true
.
That's great, but, the interviewers will confuse you with questions like:
What is the output of ("Cow" && "Horse")?
That's where you need to apply those two rules we learned earleir. Ask these questions to yourself:
- Is "Cow" a boolen?
- Nope, it is a string. Can it be converted to a
false
? - Nope. Even with JavaScript's implicit type conversion(we also call it
coercion
), the string "Cow" can not be converted to a booleanfalse
. - Alright, so as per the rule, if the first operand can not be converted to a
false
, the second operand will be returned as the output result. - Hence, the "Horse" will be the output, Bingo!
So,
console.log("Cow" && "Horse"); // Output will be "Horse"
Tips: When you learn anything fundamentally, you are more confident to tackle challenging situations in programming, including interviews.
Was it helpful? Would love to get your likes and comments below ☺️.
Want to learn further?
Learn about JavaScript Operators in-depth with fundamentals and examples.
Day 03: MASTER Operators & Expressions in JavaScript - In this session, we’ll learn about Operators and Expressions in JavaScript. This is your first step towards Problem Solving in JavaScript. This session will teach you with a lot of working examples and finish with real-life tasks and use cases.