Confusing object references with copies
Forgetting that spread creates shallow copies only
Using for...in on arrays instead of for...of
Checking for property existence with obj.prop (fails for falsy values)
Mutating objects when immutability is expected
Use in or hasOwnProperty() to check existence. Use spread for immutable updates.