Javascript Objects deep comparison
This is one of the most frequently asked interview questions for a Javascript developer role. Sit back, and understand while I try my best to explain the problem and its solution.
Problem
In Javascript, the primitive data types are compared by values...
blog.whatthecode.academy7 min read
In case of non primitive types (e.g objects) they are compared by reference also holds true for abstract equality operator i.e "==", its not only true for strict equality operator i.e "===".
e.g
let obj = {x:1}; let obj1 = {x:1}; let obj2 = obj; console.log(obj == obj1); // false since obj and obj1 points to //different objects console.log(obj === obj1); // false as expected console.log(obj2 == obj); // true console.log(obj2 === obj); // true let arr = [1,2,3]; let arr1 = [1,2,3]; let arr2 = arr; console.log(arr == arr1); // false console.log(arr === arr1); // false console.log(arr2 == arr); // true console.log(arr2 === arr); // true