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

การบังคับแปลงชนิดโดยนัยในการดำเนินการ

คาดการณ์ว่า + และการเปรียบเทียบจะบังคับแปลงชนิดอย่างไร

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

การบังคับแปลงชนิดโดยอัตโนมัติ

การบังคับแปลงชนิดโดยอัตโนมัติเกิดขึ้นเมื่อตัวดำเนินการแปลงตัวถูกดำเนินการให้เป็นชนิดที่การดำเนินการนั้นต้องการ ตัวดำเนินการแต่ละแบบจะกระตุ้นการแปลงที่แตกต่างกัน

console.log("5" + 1)
console.log("5" - 1)

เครื่องหมายบวกกับสตริง

ตัวดำเนินการบวกมีลักษณะพิเศษ: หากตัวถูกดำเนินการตัวใดตัวหนึ่งเป็นสตริง ตัวดำเนินการนี้จะต่อสตริงแทนการบวกตัวเลข

console.log("3" + 4)
console.log(3 + "4")
console.log("a" + 1 + 2)

ตัวเลขบวกตัวเลข

เมื่อทั้งตัวถูกดำเนินการสองตัวเป็นตัวเลข เครื่องหมายบวกจะนำมาบวกกัน ลำดับการดำเนินการมีความสำคัญเมื่อมีสตริงปรากฏในลำดับต่อมา

console.log(1 + 2 + "3")
console.log("1" + 2 + 3)

เครื่องหมายลบบังคับให้เป็นตัวเลข

ตัวดำเนินการลบไม่มีความหมายในรูปสตริง จึงแปลงตัวถูกดำเนินการทั้งสองตัวเป็นตัวเลขเสมอ แม้แต่สตริงที่ดูเหมือนตัวเลข

console.log("10" - "4")
console.log("10" - 4)

การคูณและการหาร

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

console.log("6" * "2")
console.log("abc" * 2)

เครื่องหมายบวกแบบเอกภาค

เครื่องหมายบวกแบบเอกภาคที่อยู่หน้าค่าจะบังคับแปลงค่านั้นเป็นตัวเลข เป็นวิธีแปลงค่าแบบกระชับ

console.log(+"42")
console.log(+"3.14")
console.log(+true)

การบังคับแปลงชนิดในการเปรียบเทียบ

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

console.log("10" > 5)
console.log("apple" < "banana")

การเปรียบเทียบค่าต่างชนิด

เมื่อด้านหนึ่งเป็นสตริงและอีกด้านเป็นตัวเลข สตริงจะถูกแปลงเป็นตัวเลขเพื่อใช้เปรียบเทียบ

console.log("20" > 3)
console.log("3" > 20)

ค่าบูลีนในการคำนวณเลข

ค่าบูลีนจะกลายเป็นหนึ่งหรือศูนย์เมื่อใช้ในการคำนวณเลข ดังนั้นการบวกค่าจริงเข้ากับตัวเลขจึงทำให้ค่าตัวเลขเพิ่มขึ้นหนึ่ง

console.log(true + true)
console.log(5 + false)

อาร์เรย์ในการบังคับแปลงชนิด

อาร์เรย์จะถูกแปลงเป็นสตริงเมื่อใช้ร่วมกับเครื่องหมายบวก อาร์เรย์ว่างจะกลายเป็นสตริงว่าง ส่วนอาร์เรย์ที่มีสมาชิกเดียวจะกลายเป็นข้อความของสมาชิกนั้น

console.log([] + [])
console.log([1, 2] + [3])

การหลีกเลี่ยงผลลัพธ์ที่น่าประหลาดใจ

เพื่อป้องกันการต่อสตริงหรือการได้ผลลัพธ์เป็น NaN โดยไม่ตั้งใจ ให้แปลงค่าอย่างชัดเจนด้วยฟังก์ชันแปลงเป็นตัวเลขหรือฟังก์ชันแปลงเป็นข้อความก่อนดำเนินการ การแสดงเจตนาให้ชัดเจนย่อมดีกว่าการพึ่งพาการบังคับแปลงชนิด

const a = "5"
const b = "3"
console.log(Number(a) + Number(b))

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความรู้เรื่องการบังคับแปลงชนิดของคุณ

ทบทวน

ทบทวน: ตัวดำเนินการแต่ละแบบกระตุ้นการบังคับแปลงชนิดที่แตกต่างกัน

  • เครื่องหมายบวกจะต่อสตริงหากตัวถูกดำเนินการตัวใดเป็นสตริง
  • เครื่องหมายลบ คูณ และหารจะบังคับให้เป็นตัวเลข
  • การเปรียบเทียบจะแปลงเป็นตัวเลข เว้นแต่ทั้งสองค่าจะเป็นสตริง
  • แปลงค่าอย่างชัดเจนเพื่อหลีกเลี่ยงผลลัพธ์ที่น่าประหลาดใจ
console.log("5" + 1)
console.log("5" - 1)

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

บทเรียน “การบังคับแปลงชนิดโดยนัยในการดำเนินการ” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การบังคับแปลงชนิดโดยนัยในการดำเนินการ”

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

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

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

บทเรียน “การบังคับแปลงชนิดโดยนัยในการดำเนินการ” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ค่า Truthy และ Falsy
  2. ความเท่ากันแบบหลวมเทียบกับแบบเคร่งครัด
  3. การบังคับแปลงชนิดโดยนัยในการดำเนินการ
  4. เทคนิคการแปลงชนิดอย่างชัดเจน
← กลับไปที่ JavaScript Academy