नल कोएलिसिंग ऑपरेटर (??)
ES2020 (ES11) में JavaScript को अपना नल कोएलिसिंग ऑपरेटर ?? मिला। यह C# के ?? ऑपरेटर के समान काम करता है।
|| ऑपरेटर की समस्या
पहले || (लॉजिकल OR) का उपयोग डिफ़ॉल्ट वैल्यूज़ के लिए किया जाता था, लेकिन यह सभी फाल्सी वैल्यूज़ (0, "", false, null, undefined, NaN) को डिफ़ॉल्ट पर भेज देता है:
?? ऑपरेटर का समाधान
??केवलnullऔरundefinedके लिए डिफ़ॉल्ट वैल्यू देता है:तुलना तालिका
| वैल्यू | val || "default" | val ?? "default" |
|---|---|---|
| null | "default" | "default" |
| undefined | "default" | "default" |
| 0 | "default" | 0 |
| "" | "default" | "" |
| false | "default" | false |
| NaN | "default" | NaN |
| "hello" | "hello" | "hello" |
| 42 | 42 | 42 |
उदाहरण
चेनिंग
ऑप्शनल चेनिंग (?.) के साथ संयोजन
ब्राउज़र सपोर्ट
??सभी आधुनिक ब्राउज़र्स में सपोर्टेड है (Chrome 80+, Firefox 72+, Safari 13.1+, Edge 80+)। पुराने ब्राउज़र्स के लिए ट्रांसपाइलर (Babel) उपयोग करें।