structuredClone vs JSON

JavaScript 🟡 Mid

Definition

JSON.parse(JSON.stringify()) perd les Date, Map, Set, undefined, fonctions et references circulaires. structuredClone gere tout sauf les fonctions et le DOM. Toujours preferer structuredClone.

Analogie

JSON = scanner un document en noir et blanc (perd les couleurs). structuredClone = photocopier en couleur haute fidelite.

Exemple de code

const obj = { d: new Date(), m: new Map([['a',1]]) };
// JSON perd tout
JSON.parse(JSON.stringify(obj));
// { d: '2024-...', m: {} }
// structuredClone preserve
structuredClone(obj);
// { d: Date, m: Map }

Cas d'usage

Deep clone d'etats complexes avec des types non-JSON.

#core#best-practice