Shallow Copy vs Deep Copy
The difference between copying only an object's top level versus recursively copying every nested structure, and the tools available for each.
Copying objects in JavaScript is trickier than it looks because of reference semantics: a naive copy often only duplicates the outermost layer, leaving nested objects and arrays shared between the original and the 'copy' — a shallow copy. A deep copy duplicates every level of nesting so the two structures are completely independent. Interviewers ask about this because it's a near-guaranteed source of real bugs, especially in state-management code that assumes immutability.
A shallow copy is like photocopying the cover of a binder but leaving the actual inserted folders inside untouched and shared with the original binder — flip open either binder's folder and you're looking at the exact same physical pages. A deep copy is like photocopying every single page inside every folder too, so the two binders share nothing physically afterward.