The relational operators:
3 > 2 // true 8 < 5 // false 9 >= 13 // false 6 <= 6 // true
Use the strict equality operator to determine if two values are equal:
2 === 5 - 3 // true 89.0 === 89 // true 10 === '10' // false 'hello' === 'Hello' // false true === false // false
There’s a strict inequality counterpart:
2 !== 5 - 3 // false 89.0 !== 89 // false 10 !== '10' // true 'hello' !== 'Hello' // true true !== false // true
No two objects have the same value, even if they look alike:
const obj1 = { prop: "value" } const obj2 = { prop: "value" } console.log(obj1 === obj2) // false 😕
But, same object, same value:
const obj1 = { prop: "value" } const obj2 = obj1 console.log(obj1 === obj2) // true
Let’s get to making decisions now.
if
statementif (expression) {
statement1
statement2
...
}
if (expression) {
statement1
statement2
...
}
If expression
is true
, execute the statements in the braces. Otherwise, ignore the statements.
Let’s consider the FutureLearn example.
We represented a course like so in the previous lesson:
const course = { title: 'The Museum as a Site and ...', rating: 4.6, reviewsCount: 75, isNew: false, isPartOfAnExpertTrack: false, }
Let’s determine if the course has a rating:
const course = { rating: 4.6, // ... } course.rating !== 0 // true
Now we can act accordingly:
const course = { rating: 4.6, // ... } if (course.rating !== 0) { console.log(`Rating: ${course.rating}`) }
Let’s add some logs around the if
statement for clarity:
const course = { rating: 4.6, // ... } console.log('Before decision') if (course.rating !== 0) { console.log(`Rating: ${course.rating}`) } console.log('After decision')
Here’s the output:
Before decision Rating: 4.6 After decision
What if the rating is 0
?
const course = { rating: 0, // ... } console.log('Before decision') if (course.rating !== 0) { console.log(`Rating: ${course.rating}`) } console.log('After decision')
Then the output is just this:
Before decision After decision
How do we print a different message?
else
const course = { rating: 0, // ... } console.log('Before decision') if (course.rating !== 0) { console.log(`Rating: ${course.rating}`) } else { console.log('No rating') } console.log('After decision')
const course = { rating: 0, // ... } console.log('Before decision') if (course.rating !== 0) { console.log(`Rating: ${course.rating}`) } else { console.log('No rating') } console.log('After decision')
The result:
Before decision No rating After decision
Let’s consider another example.
A USSD menu with different options to choose from.
How do we express the several alternatives?
else if
const choice = 1 // Could be any other number if (choice === 1) { console.log('Open Account') } else if (choice === 2) { console.log('Account Balance') } else if (choice === 3) { console.log('Airtime/Data') } // ...
You can use a final else
to handle any other choice:
if (choice === 1) { console.log('Open Account') } else if (choice === 2) { console.log('Account Balance') } else if (choice === 3) { console.log('Airtime/Data') } // ... else { console.log('Invalid choice') }