const original = { name: 'Alice', scores: [90, 85] };
const copy = { ...original };
copy.scores.push(95);
console.log(original.scores.length);
console.log(copy.scores.length);const original = { name: 'Alice', scores: [90, 85] };
const copy = { ...original, scores: [...original.scores] };
copy.scores.push(95);
console.log(original.scores.length);
console.log(copy.scores.length);Bug: Spread creates a shallow copy. copy.scores and original.scores are the same array reference. Pushing to one pushes to both.
Explanation: Explicitly spreading the nested array creates a new independent copy of scores.
Key Insight: Spread is one level deep. Always explicitly spread nested arrays/objects that you plan to mutate independently.