Logical operators in JavaScript — how do you use them?
Solution 1:
All values in Javascript are either "truthy" or "falsy".
-
a && b
evaluates to the first falsy operand -
a || b
evaluates to the first truthy operand
Both operators will not evaluate any operands after the one the return.
If all operands don't match, it will evaluate to the last one.
-
!a
evaluates totrue
ifa
is falsy andfalse
ifa
is truthy.
All values are truthy except the following, which are falsy:
false
+0
-0
NaN
""
null
undefined
document.all
Solution 2:
If you want to test that both of two conditions are truthy then use &&:
if (isX && isY)
{
// Do something.
}
If you want to test that one or both of two conditions are truthy then use ||:
if (isX || isY)
{
// Do something.
}
The !
inverts a boolean (a truthy value becomes false and vice versa).