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

ข้อแปลกของตัวโหลด ESM และความแตกต่างของ path/URL

แก้ไข URL อย่างปลอดภัย ทำความเข้าใจตัวระบุแบบสัมพัทธ์เทียบกับแบบเปล่า และดูว่า URL ของไฟล์ต่างจาก URL เว็บอย่างไร พร้อมตัวอย่างสาธิตที่รันได้

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

ภาพรวม

เป้าหมาย: แก้ไขเส้นทางอย่างปลอดภัยในทุกสภาพแวดล้อม

  • ใช้ตัวสร้าง URL เพื่อแก้ไขเส้นทางสัมพัทธ์
  • แยกแยะตัวระบุแบบไม่ระบุเส้นทางกับตัวระบุแบบสัมพัทธ์
  • เข้าใจความแตกต่างระหว่าง file: และ https:
  • หลีกเลี่ยงการต่อสตริงเพื่อสร้างเส้นทางแบบเปราะบาง
ข้อแปลกของตัวโหลด ESM และความแตกต่างของ path/URL — ภาพประกอบ 1

เส้นทางสัมพัทธ์เทียบกับฐาน

new URL(relative, base) จัดการส่วนประกอบของเส้นทางและเครื่องหมายทับได้อย่างถูกต้อง

// Use URL to resolve "./" against a base
const base = "https://site.com/app/screens/";
const img = new URL("./images/icon.png", base);
console.log("resolved:", img.href);
ข้อแปลกของตัวโหลด ESM และความแตกต่างของ path/URL — ภาพประกอบ 2

ปรับรูปแบบด้วย ..

ตัวสร้างจะลบ ../ ได้อย่างถูกต้อง คุณจึงไม่ต้องใช้วิธีดัดแปลงสตริงเอง

// URL resolves "../" segments
const u = new URL("../assets/a.txt", "https://x.com/app/views/page/");
console.log("normalized:", u.href);
ข้อแปลกของตัวโหลด ESM และความแตกต่างของ path/URL — ภาพประกอบ 3

ทำความรู้จัก URL แบบ file:

URL แบบ file: ชี้ไปยังไฟล์ภายในเครื่องในสภาพแวดล้อมลักษณะเดียวกับ Node ส่วนเบราว์เซอร์ไม่สามารถอ่านได้โดยตรงหากผู้ใช้ไม่ดำเนินการอนุญาต

// You can also work with file: URLs (no actual file I/O here)
const baseFile = "file:///home/user/project/src/";
const file = new URL("./data/sample.txt", baseFile);
console.log("file url:", file.href);
ข้อแปลกของตัวโหลด ESM และความแตกต่างของ path/URL — ภาพประกอบ 4

ชนิดของตัวระบุ

ตัวโหลด ESM จัดการตัวระบุแบบไม่ระบุเส้นทางแตกต่างจากตัวระบุแบบสัมพัทธ์หรือ URL แบบสัมบูรณ์ การรู้จักชนิดของตัวระบุจึงช่วยได้

// Tiny helper: categorize a module specifier
function specKind(s) {
  if (typeof s !== "string") return "unknown";
  if (s.startsWith("./") || s.startsWith("../") || s.startsWith("/")) return "relative-or-absolute";
  if (s.startsWith("http://") || s.startsWith("https://") || s.startsWith("file://")) return "url";
  return "bare"; // like "lodash" or "fs"
}

console.log("kind ./util.js:", specKind("./util.js"));
console.log("kind lodash   :", specKind("lodash"));
console.log("kind https:// :", specKind("https://cdn.site/x.js"));
ข้อแปลกของตัวโหลด ESM และความแตกต่างของ path/URL — ภาพประกอบ 5

แนวปฏิบัติที่เหมาะกับผู้เริ่มต้น

เคล็ดลับ:

  • ควรใช้ URL(relative, base) แทนการต่อสตริง
  • ทำความเข้าใจตัวระบุแบบไม่ระบุเส้นทางกับตัวระบุแบบสัมพัทธ์
  • อย่าคิดว่าไฟล์มีอยู่ในเบราว์เซอร์เสมอ
  • ทำให้เส้นทางสั้นและอ่านง่ายสำหรับผู้เริ่มต้น
ข้อแปลกของตัวโหลด ESM และความแตกต่างของ path/URL — ภาพประกอบ 6

แบบทดสอบพื้นฐานการแก้ไข URL

ตรวจสอบอย่างรวดเร็ว: สร้าง URL อย่างปลอดภัย

ข้อแปลกของตัวโหลด ESM และความแตกต่างของ path/URL — ภาพประกอบ 7

ทบทวน

ทบทวน: ใช้ตัวสร้าง URL เพื่อแก้ไขเส้นทางสัมพัทธ์ (./, ../) แยกแยะตัวระบุแบบไม่ระบุเส้นทางกับตัวระบุแบบสัมพัทธ์ และจำไว้ว่า URL แบบ file: แตกต่างจาก URL บนเว็บ

ข้อแปลกของตัวโหลด ESM และความแตกต่างของ path/URL — ภาพประกอบ 8

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

บทเรียน “ข้อแปลกของตัวโหลด ESM และความแตกต่างของ path/URL” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ข้อแปลกของตัวโหลด ESM และความแตกต่างของ path/URL”

แก้ไข URL อย่างปลอดภัย ทำความเข้าใจตัวระบุแบบสัมพัทธ์เทียบกับแบบเปล่า และดูว่า URL ของไฟล์ต่างจาก URL เว็บอย่างไร พร้อมตัวอย่างสาธิตที่รันได้ คุณปฏิบัติ JavaScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “ข้อแปลกของตัวโหลด ESM และความแตกต่างของ path/URL” ใช้เวลานานแค่ไหน

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

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

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

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

  1. โกลบอล ความพร้อมใช้งานของ fetch และ API ไฟล์หรือเครือข่าย
  2. ข้อแปลกของตัวโหลด ESM และความแตกต่างของ path/URL
  3. ตัวแปรสภาพแวดล้อมและรูปแบบการตั้งค่า
← กลับไปที่ JavaScript Academy