Shallow copy is also a neglected part of JS,

In a nutshell:

Shallow copy is copying Pointers,

Deep copy is a copy value.

Deep/shallow copies are only for reference types, because reference types are stored in heap memory and have one or more addresses at the stack address to point to a particular piece of data in push memory

To give you a simple analogy:

Shallow copy: you and your family use the same warehouse, each of you owns the key to the warehouse (storage space), and any change made by one of you to the warehouse will also be made by the other.

Deep copy: Your friend buys an identical warehouse together (everything was the same when they bought it), but then you each make different changes to the warehouse without affecting each other.