ตัวดำเนินการ chaining ที่เป็นทางเลือกนั้นเปิดตัวใน ES2020 และทำให้เราสามารถเข้าถึงคุณสมบัติที่ซ้อนกันโดยไม่ต้องตรวจสอบอย่างชัดแจ้งว่าการอ้างอิงแต่ละรายการใน chain นั้นเป็นโมฆะหรือไม่ได้กำหนดไว้ ก่อนหน้านี้ เราเคยใช้ตัวดำเนินการ &&เพื่อตรวจสอบว่าอ็อบเจกต์หลักไม่เป็น null หรือไม่ได้กำหนดไว้ แต่ตอนนี้เราสามารถใช้ตัวดำเนินการ chaining ทางเลือก '?.' ได้
ต่อไปนี้เป็นรหัสสำหรับตัวดำเนินการ chaining ทางเลือกใน JavaScript -
ตัวอย่าง
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; } .result { font-size: 20px; font-weight: 500; color: blueviolet; } </style> </head> <body> <h1>Optional Chaining operator in JavaScript</h1> <div class="result"></div> <br /> <button class="Btn">CLICK HERE</button> <h3>Click on the above button to use optional chaining operator to access person object properties</h3> <script> let resEle = document.querySelector(".result"); let BtnEle = document.querySelector(".Btn"); let person = { name: "Rohan", location: { state: "Delhi", country: "India", }, }; BtnEle.addEventListener("click", () => { resEle.innerHTML = "person ?. location ?. state = " + person?.location?.state + "<br>"; resEle.innerHTML +="person ?. location ?. country = " +person?.location?.country +"<br>"; resEle.innerHTML +="person ?. personalDetails ?. birthDate = " + person?.personalDetails?.birthDate +"<br>"; }); </script> </body> </html>
ผลลัพธ์
เมื่อคลิกปุ่ม 'คลิกที่นี่' -