0Pricing
JavaScript Academy · レッスン

構造化クローンと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はクエリを解析・構築します
  • 初心者にもわかりやすいパターン
構造化クローンとURLSearchParams — イラスト1

型を保持するディープコピー

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);
構造化クローンとURLSearchParams — イラスト2

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);
構造化クローンとURLSearchParams — イラスト3

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 — イラスト4

クエリ文字列を解析する

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"));
構造化クローンとURLSearchParams — イラスト5

クエリ文字列を構築する

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);
構造化クローンとURLSearchParams — イラスト6

structuredCloneとJSONのクイズ

簡単な確認:型を保持するディープコピーです。

構造化クローンとURLSearchParams — イラスト7

まとめ

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

構造化クローンとURLSearchParams — イラスト8

よくある質問

「構造化クローンと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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. JSON.parse / JSON.stringifyの基礎
  2. 構造化クローンとURLSearchParams
  3. 安全なJSONパースの戦略
← JavaScript Academyに戻る