Day 6 of 21 Days of Javascript

Today I started looking at how objects work in JS. The really cool thing about using AI for learning (and not for answers) is that you can use it to help you create cheat sheets to help you remember key ideas. Here's one I asked Chat GPT-5 to create for me on how equality is dealt with across objects.


JavaScript == vs === Cheat Sheet

Key idea:

  • ===Strict equality: same value and same type.
  • ==Loose equality: converts (coerces) types before comparing.
  • For objects (including arrays), both check identity — whether two variables point to the exact same object in memory.

📊 Examples

Expression == result === result Why?
5 == "5" ✅ true ❌ false == converts string → number before comparing
0 == false ✅ true ❌ false == converts false → 0
null == undefined ✅ true ❌ false == treats them as equal, === doesn't
[] == "" ✅ true ❌ false []"" when coerced
[1] == 1 ✅ true ❌ false [1]"1"1
{} == {} ❌ false ❌ false Different object references
obj1 == obj2 (same object), where we have declared:
let obj1 == {…};<br>let obj2 == obj1;
✅ true ✅ true Both point to same object in memory

🧠 Rules of Thumb

  • Prefer ===, it avoids weird coercion surprises.
  • Use == only if you really want type conversion (rare).
  • Remember: two separate object or array literals are never equal, even if they have the same contents.