что тут не ясного, нужно смотреть в первую очередь не на то что написано в листинге кода, а на более низкоуровневую часть.
{nya:1} !== {nya:1}
у них разные участки памяти, и объекты всегда сравниваются по ссылке в памяти, потому и разные
"test" === "test"
у них разные участки памяти, но строка сравнивается всегда с содержимым, тоже самое и числа, потому и идентичны
|