आइए '?.' को एक उदाहरण से समझने की कोशिश करते हैं।
निम्न ऑब्जेक्ट उदाहरण पर विचार करें जो 23 वर्ष की आयु के एक पुरुष मानव का वर्णन करता है:
const being = {
human: {
male: {
age: 23
}
}
};
अब मान लीजिए हम इस being ऑब्जेक्ट की age प्रॉपर्टी को एक्सेस करना चाहते हैं। बहुत सरल, है ना? हम बस चेनिंग का उपयोग करके एक्सेस करेंगे जैसे नीचे दिए गए कोड में:
उदाहरण
const being = {
human: {
male: {
age: 23
}
}
};
console.log(being.human.male.age);
आउटपुट
कंसोल आउटपुट इस प्रकार है:
23
अब मान लीजिए आप किसी तकनीकी कारण से being ऑब्जेक्ट की male प्रॉपर्टी को female या कुछ और में बदल देते हैं।
अब हमारे चेनिंग स्टेटमेंट का क्या होगा? यह एक टाइपएरर देगा कि human की प्रॉपर्टी undefined को एक्सेस नहीं कर सकते। क्या ऐसी स्थितियों में हमारे कोड को कोई एरर फेंके बिना काम करने का कोई तरीका है? हां, और यहीं '?.' उर्फ ऑप्शनल चेनिंग हमारे बचाव में आता है।
ऑप्शनल चेनिंग जो करता है वह काफी सरल है, यह सामान्य परिस्थितियों में सामान्य चेनिंग की तरह व्यवहार करता है लेकिन जब हम undefined से किसी प्रॉपर्टी को एक्सेस करने की कोशिश करते हैं तो हमारे कोड को एरर फेंकने के बजाय, यह चेनिंग को वहीं समाप्त कर देता है और undefined लौटाता है ताकि कोड का शेष भाग सामान्य रूप से कार्य करे।
हमारे पिछले उदाहरण (ऑप्शनल चेनिंग) पर विचार करें:
उदाहरण
const being = {
human: {
male: {
age: 23
}
}
}
console.log(being?.human?.female?.age);
आउटपुट
एरर फेंकने के बजाय, आउटपुट होगा:
undefined