Table of contents
JavaScript is one of the most popular programming languages in the world and is essential for creating web applications. And just like every programming language, it has many parts working together to make it useful to developers. In this article, we'll be looking into logical operators, one of the fundamental parts of JavaScript. These operators are responsible for making decisions in code.
Logical operators are special symbols in programming and mathematics that evaluate conditions to return "true" (yes) or "false" (no). They are used to compare values, check conditions, and combine boolean expressions, playing a crucial role in decision-making. Let's explore how they are used in various scenarios.
Prerequisites for Learning Logical Operators
To understand how logical operators work properly, you would need to have the following:
Basic understanding of JavaScript.
An Integrated Development Environment (IDE).
Familiarity with basic mathematical operators.
Logical operators explained
In JavaScript, logical operators are used to determine the logic between variables or values. These operators return a Boolean value, either true or false, based on the conditions they are evaluating. There are three main logical operators in JavaScript:
AND (
&&
)OR (
||
)NOT (
!
)
Now, let us look at these logical operators individually.
AND Operator ( &&
)
The AND operator checks if multiple conditions are true at the same time. It returns true
if and only if all the conditions it evaluates are true.
Syntax:
condition1 && condition2
Example in code:
if (age >= 18 && hasLicense) {
console.log("You can drive.");
}
//where hasLicense checks if a person has a driving license
The message "You can drive" is only printed to the console if an individual is 18 years or older and has a driving license.
Truth Table for AND (&&
):
Condition A | Condition B | A && B |
true | true | true |
true | false | false |
false | true | false |
false | false | false |
The truth table above depicts that if both Condition A
and Condition B
are true, then the result of the operation is true. In all other combinations (if at least one condition is false), the result of the operation is false.
OR Operator ( ||
)
The OR operator (||
) checks if at least one of the conditions is true. It returns true
if any one of the conditions it evaluates is correct.
Syntax:
condition1 || condition2
Example in code:
if (isWeekend || isHoliday) {
console.log("Office is closed.");
}
In this case, the message string is printed to the console if it is either a weekend OR a holiday.
Truth Table for OR (||
):
Condition A | Condition B | A | B | |
true | true | true | ||
true | false | true | ||
false | true | true | ||
false | false | false |
The truth table above depicts that if either condition A
or condition B
is true, the result of the operation returns true. The result is only false if both conditions are false.
NOT Operator ( !
)
The NOT operator reverses the boolean value of a condition, which means it turns true into false and vice versa.
Syntax:
!condition
Example in code:
if (!isLoggedIn) {
console.log("Please log in to continue.");
}
The code checks if a user is not logged in. The exclamation mark "!" sets the isLoggedIn
variable to false, therefore the message is printed on the console.
Truth Table for NOT (!
):
Condition A | !A |
true | false |
false | true |
The truth table above depicts that when Condition A
is true !A
(NOT A) results in false. Also, when Condition A
is false, !A
is true.
Applications in JavaScript
In most cases, logical operators don't stand alone; rather, they are used in conjunction with conditional statements like if
, else,
and switch
, as well as in loops like for
and while
loops. For example:
In Conditional Statements:
You can create complex conditions in
if
statements:if ((age > 18 && hasLicense) || isEmergency) { console.log("Allowed to drive."); }
This code allows driving if the person is over 18 and has a license, or if there is an emergency, regardless of age or license status.
In Loops:
Logical operators can also control the execution of loops. For example:
while (isRunning && !isError) { // Code to execute as long as the program is running and no error has occurred }
Truthy and Falsy values
In JavaScript, the truthiness and falsiness of values play a significant role when using logical operators. Values like 0
, null
, undefined
, NaN
, ""
(empty string), and false
are considered falsy. Everything else is truthy. It is important to note what values are truthy and falsy when working with logical operators to avoid bugs.
Special use cases for logical operators
Each logical operator in JavaScript has special use cases, allowing developers to implement faster and more effective logic in their code. Let's delve into some unique applications of the AND (&&
), OR (||
), and NOT (!
) operators.
AND Operator
Short-Circuiting:
In an expression using
&&
, if the first condition is falsy, JavaScript does not evaluate the second condition because the result is guaranteed to be falsy.function fetchData() { isLoggedIn && fetchUserDetailsFromServer(); }
In this case,
fetchUserDetailsFromServer()
function is called only ifisLoggedIn
is true. IfisLoggedIn
is false,fetchUserDetailsFromServer()
is not called at all.OR Operator
Default Values:
OR is commonly used to assign default values. If the first condition returns a falsy value, JavaScript evaluates and returns the second condition.function greet(name) { const userName = name || "Guest"; console.log("Hello, " + userName); }
Here, if the
userName
value is not provided (falsy), "Guest" is used as a default value.NOT operator
Converting to Boolean:The NOT operator is often used to convert a value to a boolean data type, which is particularly useful for checking the presence or absence of a value.
let value = "Hello"; let isValuePresent = !!value; // true
Here,
!!value
converts the string to a boolean. Since "Hello" is a truthy value (it has presence),isValuePresent
becomes true.
Conclusion
Logical operators are a powerful part of JavaScript, enabling developers to write more efficient and effective code. Understanding how to use these operators is crucial for the decision-making processes in your scripts. Whether you're a beginner or an experienced JavaScript developer, mastering logical operators will significantly enhance your coding capabilities.
Remember, the key to using logical operators effectively lies in understanding the logic behind your conditions and how they interact with the JavaScript engine.
I am open to questions, contributions, and conversations on tech and technical writing, leave a comment or DM me @twitter(X).