แม้ว่าการเชื่อมโยงทางเลือกจะมีมาระยะหนึ่งแล้วในภาษาโปรแกรมหลายภาษา แต่ก็เพิ่งมีให้บริการใน Javascript ด้วยการเปิดตัว ES2020 MDN Web Docs อธิบายการเชื่อมโยงที่เป็นทางเลือกว่าเป็น "วิธีการลดความซับซ้อนในการเข้าถึงค่าผ่านวัตถุที่เชื่อมต่อเมื่อเป็นไปได้ว่าการอ้างอิงหรือฟังก์ชันอาจไม่ได้กำหนดหรือเป็นโมฆะ" การเชื่อมโยงทางเลือกเป็นเครื่องมือที่มีค่ายิ่งยวดที่ช่วยให้คุณเข้าถึงคุณสมบัติของวัตถุที่ซ้อนกันอย่างลึกซึ้งโดยไม่เกิดข้อผิดพลาดหากไม่มีคุณสมบัติ คุณสมบัตินั้นมีอยู่และสามารถเข้าถึงได้หรือไม่มีอยู่และจะส่งคืนที่ไม่ได้กำหนดแทน ก่อนที่ Javascript จะมีการเชื่อมโยงที่เป็นทางเลือกตัวดำเนินการ && จำเป็นต้องตรวจสอบว่าอ็อบเจ็กต์ไม่ได้กำหนดหรือเป็นโมฆะก่อนที่จะเข้าถึงคุณสมบัติของมัน
const street = restaurant && restaurant.address && restaurant.address.street
const street = restaurant?.address?.street
const street = restaurant.address.street
Uncaught TypeError: Cannot read property 'street' of undefined
const tableCount = restaurant.getTableCount && restaurant.getTableCount()
const tableCount = restaurant.getTableCount?.()
const firstRestaurant = array && array[0]
const firstRestaurant = array?.[0]
การเชื่อมโยงทางเลือกเป็นวิธีที่สะอาดมีไดนามิกและอ่านได้เพื่อป้องกันข้อผิดพลาดและคุณสมบัติการเข้าถึงเมื่อเราไม่แน่ใจว่าวัตถุถูกกำหนดไว้หรือไม่
แหล่งที่มา:
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining
- https://dmitripavlutin.com/javascript-optional-chaining/
- https://www.youtube.com/watch?v=v2tJ3nzXh8I&t=0s