0Pricing
JavaScript Academy · Lekcja

Klonowanie strukturalne i URLSearchParams

Głębokie kopiowanie danych za pomocą structuredClone (z zachowaniem Dates/Maps/Sets) oraz parsowanie i tworzenie parametrów zapytań za pomocą URLSearchParams

Klonowanie strukturalne i URLSearchParams to bezpłatna lekcja JavaScript Academy na CoddyKit. To lekcja 2 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej JavaScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs JavaScript Academy zawiera 3 lekcji w sumie.

Po co te narzędzia?

Cel: bezpiecznie kopiować i serializować dane URL.

  • structuredClone tworzy głębokie kopie danych
  • Zachowuje Date/Map/Set
  • URLSearchParams analizuje i tworzy zapytania
  • Wzorce przyjazne dla początkujących
Klonowanie strukturalne i URLSearchParams — ilustracja 1

Głęboka kopia zachowująca typy

structuredClone tworzy głęboką kopię i zachowuje obiekty Date bez zmian.

// 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);
Klonowanie strukturalne i URLSearchParams — ilustracja 2

JSON traci informacje o typach

JSON zawiera wyłącznie dane; Date/Map/Set są zamieniane na zwykłe wartości lub tracone.

// 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);
Klonowanie strukturalne i URLSearchParams — ilustracja 3

Map/Set są zachowywane

Map i Set są prawidłowo zachowywane podczas klonowania za pomocą 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));
Klonowanie strukturalne i URLSearchParams — ilustracja 4

Analizowanie ciągów zapytań

URLSearchParams odczytuje ciągi zapytań; w razie potrzeby można używać get, getAll, has oraz iterowania.

// 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"));
Klonowanie strukturalne i URLSearchParams — ilustracja 5

Tworzenie ciągów zapytań

Należy użyć set/append, a następnie toString(), aby utworzyć bezpieczne ciągi zapytań.

// 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);
Klonowanie strukturalne i URLSearchParams — ilustracja 6

Quiz: structuredClone kontra JSON

Szybkie sprawdzenie: głęboka kopia zachowująca typy.

Klonowanie strukturalne i URLSearchParams — ilustracja 7

Podsumowanie

Podsumowanie: należy używać structuredClone do tworzenia głębokich kopii zachowujących typy takie jak Date/Map/Set. URLSearchParams służy do bezpiecznego analizowania i tworzenia ciągów zapytań.

Klonowanie strukturalne i URLSearchParams — ilustracja 8

Często zadawane pytania

Czy lekcja „Klonowanie strukturalne i URLSearchParams” jest bezpłatna?

Tak — pełny tekst „Klonowanie strukturalne i URLSearchParams” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu JavaScript Academy, przejdź na CoddyKit PRO. Kurs JavaScript Academy zawiera 3 lekcji w sumie.

Co nauczysz się w „Klonowanie strukturalne i URLSearchParams”?

Głębokie kopiowanie danych za pomocą structuredClone (z zachowaniem Dates/Maps/Sets) oraz parsowanie i tworzenie parametrów zapytań za pomocą URLSearchParams Ćwiczysz JavaScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć JavaScript Academy?

Nie wymagamy żadnego doświadczenia. JavaScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 3.

Ile czasu zajmuje lekcja „Klonowanie strukturalne i URLSearchParams”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji JavaScript Academy?

Tak. Każda lekcja JavaScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy JSON.parse i JSON.stringify
  2. Klonowanie strukturalne i URLSearchParams
  3. Strategie bezpiecznego parsowania JSON
← Powrót do JavaScript Academy