3. What is the purpose of using both `==` and `===` operators in JavaScript, and when would you use one over the other?
easy

In JavaScript, == and === are two operators used for comparing values. The difference between them is that == performs type coercion, meaning it tries to convert one value to the other before performing the comparison. On the other hand, === performs strict equality comparison without any type coercion.


Here's an example:

console.log(2 == "2"); // true
console.log(2 === "2"); // false
console.log(0 == -0); // true
console.log(0 === -0); // false
console.log("5" == 5); // true
console.log("5" === 5); // false

As you can see, == operator performs type coercion and returns true for values that are equivalent after conversion. For example, 2 == "2" returns true because it converts the string to a number. On the other hand, === operator performs strict equality comparison without any type coercion, so it returns false for the same example.

You would use == when you want to perform a type coercion check, or when you don't care about the type of the values being compared. For example, if you are comparing two variables that might be of different types, using == can help avoid unexpected results.


On the other hand, you would use === when you want to perform a strict equality comparison, or when you are sure that both values have the same type. Using === is recommended for most cases because it gives more reliable and predictable results.