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

การสร้าง Symbol ที่ไม่ซ้ำกัน

สร้างค่าที่รับประกันว่าไม่ซ้ำกัน

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

สัญลักษณ์คืออะไร

สัญลักษณ์เป็นชนิดพื้นฐานที่เพิ่มเข้ามาใน JavaScript สมัยใหม่ สัญลักษณ์ทุกตัวมีเอกลักษณ์เฉพาะตัว แม้ว่าสัญลักษณ์สองตัวจะมีคำอธิบายเหมือนกัน

const s = Symbol()
console.log(typeof s)

การสร้างสัญลักษณ์

คุณสร้างสัญลักษณ์ได้โดยเรียกใช้ฟังก์ชันสัญลักษณ์ ฟังก์ชันนี้ไม่ใช่ตัวสร้างออบเจ็กต์ ดังนั้นจึงไม่ต้องใช้ตัวดำเนินการสร้างออบเจ็กต์ร่วมด้วย

const id = Symbol()
console.log(typeof id)

คำอธิบายที่ไม่จำเป็นต้องระบุ

คุณสามารถส่งสตริงคำอธิบายเพื่อช่วยในการแก้ไขข้อผิดพลาดได้ คำอธิบายมีไว้เพื่อให้ข้อมูลเท่านั้น และไม่ส่งผลต่อความเป็นเอกลักษณ์

const id = Symbol("user id")
console.log(id.description)

สัญลักษณ์ทุกตัวมีเอกลักษณ์

สัญลักษณ์สองตัวไม่มีทางเท่ากัน แม้จะมีคำอธิบายเหมือนกัน ความเป็นเอกลักษณ์ที่รับประกันได้นี้คือคุณสมบัติสำคัญของสัญลักษณ์

const a = Symbol("x")
const b = Symbol("x")
console.log(a === b)

ไม่มีคำสำคัญสำหรับสร้างออบเจ็กต์

การเรียกฟังก์ชันสัญลักษณ์ด้วยตัวดำเนินการสร้างออบเจ็กต์จะทำให้เกิดข้อผิดพลาด เพราะสัญลักษณ์เป็นชนิดพื้นฐาน ไม่ใช่ออบเจ็กต์ ควรเรียกใช้เป็นฟังก์ชันธรรมดาเสมอ

const s = Symbol("ok")
console.log(typeof s === "symbol")

สัญลักษณ์เป็นชนิดพื้นฐาน

ชนิดของสัญลักษณ์คือสตริงที่หมายถึงสัญลักษณ์ เช่นเดียวกับชนิดพื้นฐานอื่น ๆ สัญลักษณ์ไม่สามารถเปลี่ยนแปลงได้และไม่มีคุณสมบัติให้แก้ไข

const s = Symbol("p")
console.log(typeof s)

การอ่านคำอธิบาย

คุณสมบัติคำอธิบายจะคืนข้อความที่คุณระบุไว้ หรือคืนค่าไม่กำหนดหากไม่ได้ระบุคำอธิบาย คุณสมบัตินี้อ่านได้อย่างเดียว

const named = Symbol("hello")
const anon = Symbol()
console.log(named.description)
console.log(anon.description)

สัญลักษณ์ไม่สามารถแปลงเป็นข้อความโดยอัตโนมัติ

สัญลักษณ์จะไม่แปลงเป็นข้อความโดยปริยาย จึงช่วยป้องกันการนำไปใช้ผิดโดยไม่ตั้งใจ หากต้องการอ่านข้อความอย่างชัดเจน ให้ใช้ฟังก์ชันแปลงเป็นข้อความหรือ toString

const s = Symbol("tag")
console.log(String(s))
console.log(s.toString())

การใช้สัญลักษณ์เป็นค่าคงที่

สัญลักษณ์เหมาะอย่างยิ่งสำหรับใช้เป็นค่าคงที่ที่ไม่ซ้ำกัน เช่น ใช้แทน states ที่แตกต่างกันและไม่มีทางชนกัน

const RED = Symbol("red")
const GREEN = Symbol("green")
console.log(RED === GREEN)

การจัดเก็บสัญลักษณ์

คุณสามารถจัดเก็บสัญลักษณ์ไว้ในตัวแปร อาร์เรย์ และใช้เป็นค่าภายในออบเจ็กต์ได้ ความไม่ซ้ำกันของสัญลักษณ์จะติดไปกับค่านั้น

const states = [Symbol("on"), Symbol("off")]
console.log(states.length)
console.log(states[0] === states[1])

เหตุผลที่ความไม่ซ้ำกันสำคัญ

เนื่องจากไม่มีสัญลักษณ์สองตัวใดชนกัน สัญลักษณ์จึงเหมาะอย่างยิ่งสำหรับ key ที่ต้องไม่ชนกับโค้ดส่วนอื่น ซึ่งเราจะศึกษาในบทเรียนถัดไป

const key1 = Symbol("meta")
const key2 = Symbol("meta")
const obj = {}
obj[key1] = "a"
obj[key2] = "b"
console.log(obj[key1], obj[key2])

ตรวจสอบความเข้าใจ

ทดสอบความรู้เกี่ยวกับการสร้างสัญลักษณ์

สรุปทบทวน

สรุปทบทวน: สัญลักษณ์เป็นค่าพื้นฐานที่ไม่ซ้ำกัน

  • สร้างโดยเรียกใช้สัญลักษณ์ ไม่ใช่ด้วยคำสั่งสร้างใหม่
  • คำอธิบายที่ใส่หรือไม่ใส่ก็ได้ช่วยเฉพาะการแก้ไขข้อผิดพลาดเท่านั้น
  • สัญลักษณ์ทุกตัวไม่ซ้ำกัน
  • ชนิดของสัญลักษณ์คือชนิดสัญลักษณ์
const a = Symbol("x")
const b = Symbol("x")
console.log(a === b)

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

บทเรียน “การสร้าง Symbol ที่ไม่ซ้ำกัน” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การสร้าง Symbol ที่ไม่ซ้ำกัน”

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

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

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

บทเรียน “การสร้าง Symbol ที่ไม่ซ้ำกัน” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การสร้าง Symbol ที่ไม่ซ้ำกัน
  2. การใช้ Symbol เป็นคีย์ของออบเจ็กต์
  3. รีจิสทรี Symbol ส่วนกลาง
  4. Symbol ที่รู้จักกันดี
← กลับไปที่ JavaScript Academy