There are plenty of tutorials for == and === so please don\'t guide me to a basic tutorial, my question is a bit more specific:
For example
String literals, which are primitive value types, are different from new String objects, which are entities with distinct references wrapping those values. See Predefined Core Objects in Mozilla's JavaScript docs for details.
So you're right in that comparison is handled differently for literals and for objects, simply because one compares their values while the other compares references.