構造化クローンとURLSearchParams
structuredCloneでデータをディープコピーします(Date、Map、Setも保持します)。URLSearchParamsでクエリ文字列を解析・構築します。
「構造化クローンとURLSearchParams」はCoddyKit上の無料JavaScript Academyレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJavaScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 JavaScript Academyコースには全3レッスンが含まれています。
なぜこれらのツールなのか
目標:URLデータを安全にコピーしてシリアライズします。
- structuredCloneはデータをディープコピーします
- Date/Map/Setを保持します
- URLSearchParamsはクエリを解析・構築します
- 初心者にもわかりやすいパターン

型を保持するディープコピー
structuredCloneはディープコピーを作成し、Dateオブジェクトをそのまま保持します。
// Deep copy with structuredClone (Node 17+/modern browsers)
const original = { n: 1, list: [1, 2], when: new Date("2024-01-01") };
const copy = structuredClone(original);
copy.n = 2;
copy.list.push(3);
console.log("original.n:", original.n);
console.log("copy.n:", copy.n);
console.log("dates equal type?", copy.when instanceof Date);

JSONでは型が失われる
JSONはデータ専用です。Date/Map/Setは通常の値に変換されるか、失われます。
// JSON round-trip loses special types (e.g., Date becomes string)
const obj = { when: new Date("2024-01-01"), ok: true };
const round = JSON.parse(JSON.stringify(obj));
console.log("after JSON:", typeof round.when, round.when);
console.log("is Date?", round.when instanceof Date);

MapとSetを保持する
MapとSetは、structuredCloneを使えば正しくクローンに引き継がれます。
// structuredClone preserves Map and Set
const m1 = new Map([["a", 1]]);
const s1 = new Set([1, 2]);
const cloned = structuredClone({ m1, s1 });
console.log("map has a?", cloned.m1.has("a"));
console.log("set has 2?", cloned.s1.has(2));

クエリ文字列を解析する
URLSearchParamsはクエリ文字列を読み取ります。必要に応じてget、getAll、hasを使ったり、反復処理を行ったりできます。
// Parse a query string with URLSearchParams
const qs = "q=shoes&color=red&color=blue&page=2";
const params = new URLSearchParams(qs);
console.log("q:", params.get("q"));
console.log("first color:", params.get("color"));
console.log("all colors:", params.getAll("color"));
console.log("page:", params.get("page"));

クエリ文字列を構築する
set/appendを使ってからtoString()を呼び出すと、安全なクエリ文字列を作成できます。
// Build a query string from key/value pairs
const build = new URLSearchParams();
build.set("q", "shoes");
build.append("color", "red");
build.append("color", "blue");
build.set("page", String(2));
console.log("query:", build.toString());
// Example full URL
const url = "https://example.com/search?" + build.toString();
console.log("url:", url);

structuredCloneとJSONのクイズ
簡単な確認:型を保持するディープコピーです。

まとめ
まとめ:Date/Map/Setのような型を保持するディープコピーにはstructuredCloneを使います。URLSearchParamsを使うと、クエリ文字列を安全に解析・構築できます。

よくある質問
「構造化クローンとURLSearchParams」レッスンは無料ですか?
はい。「構造化クローンとURLSearchParams」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、JavaScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 JavaScript Academyコースには全3レッスンが含まれています。
「構造化クローンとURLSearchParams」で何を学びますか?
structuredCloneでデータをディープコピーします(Date、Map、Setも保持します)。URLSearchParamsでクエリ文字列を解析・構築します。 ブラウザで直接実行するハンズオンコードでJavaScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
JavaScript Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJavaScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。
「構造化クローンとURLSearchParams」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJavaScript Academyレッスンでコードを書いて実行できますか?
はい。すべてのJavaScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- JSON.parse / JSON.stringifyの基礎
- 構造化クローンとURLSearchParams
- 安全なJSONパースの戦略