การบังคับแปลงชนิดโดยนัยในการดำเนินการ
คาดการณ์ว่า + และการเปรียบเทียบจะบังคับแปลงชนิดอย่างไร
การบังคับแปลงชนิดโดยนัยในการดำเนินการ เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ค่า Truthy และ Falsy
- ความเท่ากันแบบหลวมเทียบกับแบบเคร่งครัด
- การบังคับแปลงชนิดโดยนัยในการดำเนินการ
- เทคนิคการแปลงชนิดอย่างชัดเจน