Destructuring extracts values with defaults and renaming; spread copies enumerable own properties one level deep.
const { name, chainId: id = 1 } = net;
const [first, ...rest] = txs;
const merged = { ...defaults, ...overrides };Spread is a shallow copy: nested objects are still shared references.