0Pricing
JavaScript Academy · บทเรียน

การโคลนแบบมีโครงสร้างและ URLSearchParams

คัดลอกข้อมูลแบบลึกด้วย structuredClone (คง Dates/Maps/Sets ไว้) และแยกวิเคราะห์หรือสร้างสตริงคำค้นด้วย URLSearchParams

การโคลนแบบมีโครงสร้างและ URLSearchParams เป็นบทเรียน JavaScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน JavaScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน

เหตุใดจึงใช้เครื่องมือเหล่านี้

เป้าหมาย: คัดลอกและแปลงข้อมูล URL เป็นรูปแบบจัดเก็บอย่างปลอดภัย

  • structuredClone คัดลอกข้อมูลแบบลึก
  • รักษาออบเจ็กต์วันที่ แมป และเซตไว้
  • พารามิเตอร์ค้นหา URL แยกวิเคราะห์และสร้างคำค้นหา
  • รูปแบบที่เหมาะสำหรับผู้เริ่มต้น
การโคลนแบบมีโครงสร้างและ URLSearchParams — ภาพประกอบ 1

คัดลอกแบบลึกโดยรักษาชนิดข้อมูล

structuredClone สร้างสำเนาแบบลึกและรักษาออบเจ็กต์วันที่ไว้ครบถ้วน

// 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 มีเฉพาะข้อมูล ออบเจ็กต์วันที่ แมป และเซตจะกลายเป็นค่าทั่วไปหรือสูญหายไป

// 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

แมปและเซตรอดจากการคัดลอก

แมป และ เซต จะถูกคัดลอกอย่างถูกต้องด้วย 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

แยกวิเคราะห์สตริงคำค้นหา

พารามิเตอร์ค้นหา URL อ่านสตริงคำค้นหา ใช้ 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

ทบทวน

ทบทวน: ใช้ structuredClone สำหรับการคัดลอกแบบลึกที่รักษาชนิดข้อมูลอย่างออบเจ็กต์วันที่ แมป และเซต ใช้ พารามิเตอร์ค้นหา URL เพื่อแยกวิเคราะห์และสร้างสตริงคำค้นหาอย่างปลอดภัย

การโคลนแบบมีโครงสร้างและ URLSearchParams — ภาพประกอบ 8

คำถามที่พบบ่อย

บทเรียน “การโคลนแบบมีโครงสร้างและ URLSearchParams” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การโคลนแบบมีโครงสร้างและ URLSearchParams” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส JavaScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การโคลนแบบมีโครงสร้างและ URLSearchParams”

คัดลอกข้อมูลแบบลึกด้วย structuredClone (คง Dates/Maps/Sets ไว้) และแยกวิเคราะห์หรือสร้างสตริงคำค้นด้วย URLSearchParams คุณปฏิบัติ JavaScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน JavaScript Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน JavaScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน

บทเรียน “การโคลนแบบมีโครงสร้างและ URLSearchParams” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน JavaScript Academy นี้ได้ไหม

ได้ บทเรียน JavaScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐาน JSON.parse / JSON.stringify
  2. การโคลนแบบมีโครงสร้างและ URLSearchParams
  3. กลยุทธ์การแยกวิเคราะห์ JSON อย่างปลอดภัย
← กลับไปที่ JavaScript Academy