# What is the proper way to compare if two values are equal in a boolean expression in JavaScript?

## Understanding Boolean Expressions

In the journey of learning programming, you may have already run into a term called "boolean". Sounds alien, right? But don't worry. It's quite simple. A boolean expression is just a fancy name for something that is either true or false. Just like a light switch, it can only be in two states: on or off.

## Comparing Values in JavaScript

Now that we understand what a boolean expression is, let's dive into how we can use it to compare values in JavaScript.

Imagine you have two apples in your hands and you want to know if they're the same or not. You would compare them, right? You'd check their color, their size, their shape, and so on. That's exactly what we do in programming, but with values instead.

In JavaScript, we have two main operators to compare values: the double equals `==` and the triple equals `===`. Let's see how they work.

## The Double Equals `==`

The double equals operator `==` is used to compare the values of two variables. It checks if the values on both sides of the operator are equal.

Here's an example:

``````let age1 = 20;
let age2 = '20';

console.log(age1 == age2); // true
``````

Wait, what? `20` and `'20'` are equal? How's that possible? Here's the catch. The double equals operator `==` performs what we call "type coercion". This means it converts one type of data to another to make the comparison. In our case, it converted the number 20 to the string '20' to make the comparison, and therefore it returned true.

## The Triple Equals `===`

Now let's see what the triple equals operator `===` does.

``````let age1 = 20;
let age2 = '20';

console.log(age1 === age2); // false
``````

This time, the output was false. What happened? The triple equals operator `===` doesn't do type coercion. It checks both the values and the types of data. So, in our example, although the value 20 and '20' are the same, their types are different (one is a number, the other is a string), so it returns false.

## Deciding Which Operator to Use

So, how do you decide whether to use the double equals `==` or the triple equals `===`?

The best way is to always use the triple equals `===` unless you have a specific reason to do type coercion. This is because it's safer. It won't give you unexpected results due to type coercion.

## Conclusion: The Art of Comparison

In the grand scheme of programming, comparison is a fundamental concept, and it is crucial to understand how it works in order to build effective and efficient programs.

Think of boolean expressions and comparison operators as your personal detective tools. They help you compare clues (values), decide if they match or not, and solve the mystery (your programming task).

Just like a detective, you need to know when to use which tool. Using `==` is like looking at two people and saying they are the same because they have similar features. Using `===`, on the other hand, is like taking fingerprints or DNA samples. It's more precise and trustworthy.

Remember, it's not just about getting the job done, but about understanding why and how you're doing it. Happy coding, detective!

## Learn to code in our 100% online programs

Altcademy coding bootcamp offers beginner-friendly, online programs designed by industry experts to help you become a coder. 85%+ of Altcademy alumni are hired within 6 months after graduation. See how we teach, or click on one of the following programs to find out more.