Чем примитивы отличаются от объектов?
Примитивы — строки, числа, булевы, null, undefined, символы, bigint — копируются по значению. Объекты, включая массивы и функции, копируются по ссылке, поэтому две переменные могут указывать на одно и то же, и изменение через одну видно через другую. Почти любой баг «почему изменился мой массив» — про это.