Booleans and Decisions

Boolean expressions and flow control statements are how we instructor computers to make decisions.

Table of Contents

  1. Boolean Expressions
  2. Decision Statements
  3. Ternary Operator
  4. Nullish Coalescing Operator
  5. Further Reading

Boolean Expressions

A boolean expression is a mathematical expression that results in either true or false.

Boolean expressions in Javascript can contain the following operators (and more):

Symbol Meaning
=== equal (no coercion)
!== not equal (no coercion)
> greater than
< less than
>= greater than or equal
<= less than or equal
&& Boolean ‘and’
¦¦ Boolean ‘or’

⚡ Warning:

Use the “really equals” === and “really not equals” !== operators for comparisons.

The regular == and != will perform type coercion, which means they may not work as expected.

2 == "2"; // true, due to type coercion.
2 === "2"; // false

Decision Statements

The if and else keywords allow us to control the flow of execution in our programs.

let grinStrength = 45;

if (grinStrength > 30) {
  console.log("You defeat the evil wizard with a grin.");
} else if (grinStrength < 10) {
  console.log("Your grin fails you. The wizard steals your beard.");
} else {
  console.log("You are unsure how to proceed.");
}

Ternary Operator

The ternary operator, sometimes called a conditional or question mark operator, allows you to replace if/else statements that guard assignments with a single statement.

Ternary assignments are structured like this:

let variable = boolean ? value1 : value2;

☝️ The variable will be assigned value1 if boolean is true, otherwise it will be assigned value2.

A more detailed example:

let rubiesInPocket = 0;
let isBirthday = prompt("Is today your birthday (y/n)");

// Assignment using if/else:
if (isBirthday === "y") {
  rubiesInPocket = 50;
} else {
  rubiesInPocket = 5;
}

// Using a ternary statement instead:
rubiesInPocket = isBirthday === "y" ? 50 : 5;

🎵 Note:

We aren’t validating the user input here, so any value entered other than y means no.

Nullish Coalescing Operator

The ?? operator allows us to pick between a potentially undefined value and a fall-back value.

let variable = value1 ?? value2;

☝️ If value1 is defined, variable will be assigned value1. If value1 is undefined or null, variable will be assigned value2.

This is most commonly used to assign a default value to a variable:

catName ??= "Mr. Mistoffelees"; // Only perform this assignment if catName is undefined or null.

Further Reading