What is equality operators?
Equality operators comparing two values which will either return a Boolean value "true" or "false".
Equality is use in decision making scenario. There's two type of equality ==
"loose equality" & ===
"strict equality". Why is this important? Because in a situation when I want to compare an object and primitive data, these two does the same thing, but the result are different.
Loose equality will try convert value to match each other data type before compare the value.
console.log(1 == "1");
console.log('hello' == 'hello');
// output:
true
true
Strict equality does not do that, all it does is compare and considers operands of different type to be different, it's also faster since it skip one step.
console.log(1 === "1");
console.log('hello' === 'hello');
//output:
false
true
So Which to use? Unless there is a good reason to use ==
It is widely consider best practice to use ===
. So now I know what to use, I will stick to strict equality. Let see how strict equality compare primitive and object.
When comparing object and primitive, in primitive- strict equality just comparing the actual value, whether it's a string, number, or Boolean.
//primitive
var obj1 = 1
var obj2 = 1
console.log(obj1 === obj2);
//output: true
While an object, it doesn't just look at the value in object but also in memory.
//object comparison
obj1 = {number: 1}
obj2 = {number: 1}
console.log(obj1 === obj2);
//output: false
The only time an object is equal to another object is when they are both the same.
let a = {number: 1};
let b = a;
console.log( a === b);
//output: true
Inequality
Opposite of equality operators is Inequality operator !==
. Strict inequality operator check if two operands are not equal and return Boolean. Similar to strict equality strict inequality also consider operands of different type to be different. To not confuse myself since it is best practice to use strict equality, I will only use strict inequality when comparing if two operands are different.
console.log(1 !== "1");
console.log('hello' !== 'hello');
console.log(true !== 1);
//output:
true
false
true
And that is my understanding on equality.
Array Methods Next!
My other post:
Control Flow
Logical Operators
Top comments (0)