ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನ ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ (?.) ಆಪರೇಟರ್ ಬಳಸಿ ಸ್ವಚ್ಛ, ಸುರಕ್ಷಿತ ಮತ್ತು ದೃಢವಾದ ಕೋಡ್ ಬರೆಯಿರಿ. ತಪ್ಪುಗಳನ್ನು ತಡೆಯುವುದು ಮತ್ತು ಆಳವಾದ ನೆಸ್ಟೆಡ್ ಆಬ್ಜೆಕ್ಟ್ ಪ್ರಾಪರ್ಟಿಗಳನ್ನು ಸುಲಭವಾಗಿ ನಿರ್ವಹಿಸುವುದನ್ನು ಕಲಿಯಿರಿ.
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್: ಸುರಕ್ಷಿತ ಮತ್ತು ಸುಂದರ ಪ್ರಾಪರ್ಟಿ ಅಕ್ಸೆಸ್
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ಆಳವಾಗಿ ನೆಸ್ಟೆಡ್ (nested) ಆಗಿರುವ ಆಬ್ಜೆಕ್ಟ್ ಪ್ರಾಪರ್ಟಿಗಳ ಸಂಕೀರ್ಣ ಜಾಲದಲ್ಲಿ ಕೆಲಸ ಮಾಡುವುದು ಹಲವು ಬಾರಿ ಗಣಿಕ್ಷೇತ್ರದಲ್ಲಿ ನಡೆಯುವಂತೆ ಭಾಸವಾಗಬಹುದು. ಒಂದೇ ಒಂದು ಪ್ರಾಪರ್ಟಿ ಕಾಣೆಯಾದರೆ "Cannot read property 'x' of undefined" ಎಂಬ ಭಯಾನಕ ಎರರ್ ಬರಬಹುದು, ಇದು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ತಕ್ಷಣವೇ ನಿಲ್ಲಿಸುತ್ತದೆ. ಪ್ರತಿ ಪ್ರಾಪರ್ಟಿಯನ್ನು ಅಕ್ಸೆಸ್ ಮಾಡುವ ಮೊದಲು null ಅಥವಾ undefined ಮೌಲ್ಯಗಳಿಗಾಗಿ ರಕ್ಷಣಾತ್ಮಕವಾಗಿ ಪರಿಶೀಲಿಸುವ ಸಾಂಪ್ರದಾಯಿಕ ವಿಧಾನಗಳು ದೀರ್ಘ ಮತ್ತು ತೊಡಕಿನ ಕೋಡ್ಗೆ ಕಾರಣವಾಗಬಹುದು. ಅದೃಷ್ಟವಶಾತ್, ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಹೆಚ್ಚು ಸುಂದರ ಮತ್ತು ಸಂಕ್ಷಿಪ್ತ ಪರಿಹಾರವನ್ನು ನೀಡುತ್ತದೆ: ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್.
ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಎಂದರೇನು?
ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್, ?.
ಆಪರೇಟರ್ನಿಂದ ಸೂಚಿಸಲ್ಪಡುತ್ತದೆ, ಇದು null ಅಥವಾ undefined ಆಗಿರಬಹುದಾದ ಆಬ್ಜೆಕ್ಟ್ ಪ್ರಾಪರ್ಟಿಗಳನ್ನು ಎರರ್ ಉಂಟುಮಾಡದೆ ಅಕ್ಸೆಸ್ ಮಾಡುವ ವಿಧಾನವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಚೈನ್ನಲ್ಲಿ ನಲಿಶ್ (null or undefined) ಮೌಲ್ಯವನ್ನು ಎದುರಿಸಿದಾಗ ಎರರ್ ಬರುವ ಬದಲು, ಅದು ಸರಳವಾಗಿ undefined ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಇದು ಆಳವಾಗಿ ನೆಸ್ಟೆಡ್ ಆಗಿರುವ ಪ್ರಾಪರ್ಟಿಗಳನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಅಕ್ಸೆಸ್ ಮಾಡಲು ಮತ್ತು ಸಂಭಾವ್ಯ ಕಾಣೆಯಾದ ಮೌಲ್ಯಗಳನ್ನು ಸುಲಭವಾಗಿ ನಿರ್ವಹಿಸಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
ಇದನ್ನು ನಿಮ್ಮ ಆಬ್ಜೆಕ್ಟ್ ರಚನೆಗಳಿಗೆ ಸುರಕ್ಷಿತ ನ್ಯಾವಿಗೇಟರ್ ಎಂದು ಯೋಚಿಸಿ. ಇದು ಪ್ರಾಪರ್ಟಿಗಳ ಮೂಲಕ "ಚೈನ್" ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಮತ್ತು ಯಾವುದೇ ಹಂತದಲ್ಲಿ ಒಂದು ಪ್ರಾಪರ್ಟಿ ಕಾಣೆಯಾಗಿದ್ದರೆ (null ಅಥವಾ undefined), ಚೈನ್ ಶಾರ್ಟ್-ಸರ್ಕ್ಯೂಟ್ ಆಗಿ ಎರರ್ ಉಂಟುಮಾಡದೆ undefined ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ?
?.
ಆಪರೇಟರ್ ಅನ್ನು ಪ್ರಾಪರ್ಟಿ ಹೆಸರಿನ ನಂತರ ಇರಿಸಲಾಗುತ್ತದೆ. ಆಪರೇಟರ್ನ ಎಡಭಾಗದಲ್ಲಿರುವ ಪ್ರಾಪರ್ಟಿಯ ಮೌಲ್ಯವು null ಅಥವಾ undefined ಆಗಿದ್ದರೆ, ಎಕ್ಸ್ಪ್ರೆಶನ್ ತಕ್ಷಣವೇ undefined ಗೆ ಮೌಲ್ಯಮಾಪನಗೊಳ್ಳುತ್ತದೆ. ಇಲ್ಲದಿದ್ದರೆ, ಪ್ರಾಪರ್ಟಿ ಅಕ್ಸೆಸ್ ಸಾಮಾನ್ಯವಾಗಿ ಮುಂದುವರಿಯುತ್ತದೆ.
ಈ ಉದಾಹರಣೆಯನ್ನು ಪರಿಗಣಿಸಿ:
const user = {
profile: {
address: {
city: "London"
}
}
};
// ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಇಲ್ಲದೆ, user.profile ಅಥವಾ user.profile.address undefined ಆಗಿದ್ದರೆ ಇದು ಎರರ್ ನೀಡಬಹುದು
const city = user.profile.address.city; // ಲಂಡನ್
// ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ನೊಂದಿಗೆ, profile ಅಥವಾ address ಕಾಣೆಯಾಗಿದ್ದರೂ ನಾವು ನಗರವನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಅಕ್ಸೆಸ್ ಮಾಡಬಹುದು
const citySafe = user?.profile?.address?.city; // ಲಂಡನ್
const userWithoutAddress = {
profile: {},
};
const citySafeUndefined = userWithoutAddress?.profile?.address?.city; // undefined (ಎರರ್ ಇಲ್ಲ)
ಮೊದಲ ಉದಾಹರಣೆಯಲ್ಲಿ, ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ನೊಂದಿಗೆ ಮತ್ತು ಇಲ್ಲದೆಯೂ, ನಮಗೆ "ಲಂಡನ್" ಸಿಗುತ್ತದೆ ಏಕೆಂದರೆ ಎಲ್ಲಾ ಪ್ರಾಪರ್ಟಿಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ.
ಎರಡನೇ ಉದಾಹರಣೆಯಲ್ಲಿ, userWithoutAddress.profile
ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಆದರೆ userWithoutAddress.profile.address
ಇಲ್ಲ. ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಇಲ್ಲದೆ, userWithoutAddress.profile.address.city
ಅನ್ನು ಅಕ್ಸೆಸ್ ಮಾಡುವುದು ಎರರ್ ಉಂಟುಮಾಡುತ್ತದೆ. ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ನೊಂದಿಗೆ, ನಮಗೆ ಎರರ್ ಇಲ್ಲದೆ undefined
ಸಿಗುತ್ತದೆ.
ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಬಳಸುವುದರ ಪ್ರಯೋಜನಗಳು
- ಸುಧಾರಿತ ಕೋಡ್ ಓದುವಿಕೆ: ದೀರ್ಘವಾದ null ಚೆಕ್ಗಳ ಅಗತ್ಯವನ್ನು ನಿವಾರಿಸುತ್ತದೆ, ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಸ್ವಚ್ಛ ಮತ್ತು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸುಲಭವಾಗಿಸುತ್ತದೆ.
- ಬಾಯ್ಲರ್ಪ್ಲೇಟ್ ಕಡಿಮೆ ಮಾಡುವುದು: ಸಂಕೀರ್ಣ ಪ್ರಾಪರ್ಟಿ ಅಕ್ಸೆಸ್ ಲಾಜಿಕ್ ಅನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ, ನೀವು ಬರೆಯಬೇಕಾದ ಕೋಡ್ ಪ್ರಮಾಣವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
- ವರ್ಧಿತ ಎರರ್ ತಡೆಗಟ್ಟುವಿಕೆ: null ಅಥವಾ undefined ಮೌಲ್ಯಗಳ ಪ್ರಾಪರ್ಟಿಗಳನ್ನು ಅಕ್ಸೆಸ್ ಮಾಡುವುದರಿಂದ ಉಂಟಾಗುವ ಅನಿರೀಕ್ಷಿತ ಎರರ್ಗಳನ್ನು ತಡೆಯುತ್ತದೆ.
- ಹೆಚ್ಚು ದೃಢವಾದ ಅಪ್ಲಿಕೇಶನ್ಗಳು: ಡೇಟಾ ಅಸಂಗತತೆಗಳು ಮತ್ತು ಅನಿರೀಕ್ಷಿತ ಡೇಟಾ ರಚನೆಗಳಿಗೆ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಹೆಚ್ಚು ಸ್ಥಿತಿಸ್ಥಾಪಕವಾಗಿಸುತ್ತದೆ.
ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಗಳು ಮತ್ತು ಬಳಕೆಯ ಸಂದರ್ಭಗಳು
1. API ಡೇಟಾವನ್ನು ಅಕ್ಸೆಸ್ ಮಾಡುವುದು
API ಯಿಂದ ಡೇಟಾವನ್ನು ಪಡೆಯುವಾಗ, ಡೇಟಾ ರಚನೆಯ ಮೇಲೆ ನಿಮಗೆ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣ ಇರುವುದಿಲ್ಲ. ಕೆಲವು ಫೀಲ್ಡ್ಗಳು ಕಾಣೆಯಾಗಿರಬಹುದು ಅಥವಾ null ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿರಬಹುದು. ಈ ಸನ್ನಿವೇಶಗಳನ್ನು ಸುಲಭವಾಗಿ ನಿಭಾಯಿಸಲು ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಅಮೂಲ್ಯವಾಗಿದೆ.
async function fetchData(userId) {
const response = await fetch(`https://api.example.com/users/${userId}`);
const data = await response.json();
// ಬಳಕೆದಾರರ ಇಮೇಲ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಅಕ್ಸೆಸ್ ಮಾಡಿ, 'email' ಪ್ರಾಪರ್ಟಿ ಕಾಣೆಯಾಗಿದ್ದರೂ ಸಹ
const email = data?.profile?.email;
console.log("ಇಮೇಲ್:", email || "ಇಮೇಲ್ ಲಭ್ಯವಿಲ್ಲ"); // ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ಒದಗಿಸಲು ನಲಿಶ್ ಕೊಲೆಸಿಂಗ್ ಬಳಸಿ
// ಬಳಕೆದಾರರ ವಿಳಾಸದ ನಗರವನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಅಕ್ಸೆಸ್ ಮಾಡಿ
const city = data?.address?.city;
console.log("ನಗರ: ", city || "ನಗರ ಲಭ್ಯವಿಲ್ಲ");
}
fetchData(123); // ಉದಾಹರಣೆ ಬಳಕೆ
2. ಬಳಕೆದಾರರ ಆದ್ಯತೆಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವುದು
ಬಳಕೆದಾರರ ಆದ್ಯತೆಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ನೆಸ್ಟೆಡ್ ಆಬ್ಜೆಕ್ಟ್ಗಳಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. ಕೆಲವು ಆದ್ಯತೆಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸದಿದ್ದರೂ ಸಹ, ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಈ ಆದ್ಯತೆಗಳನ್ನು ಅಕ್ಸೆಸ್ ಮಾಡುವುದನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ.
const userPreferences = {
theme: {
color: "dark",
},
};
// ಬಳಕೆದಾರರ ಫಾಂಟ್ ಗಾತ್ರವನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಅಕ್ಸೆಸ್ ಮಾಡಿ, ಅದು ಸೆಟ್ ಆಗದಿದ್ದರೆ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ
const fontSize = userPreferences?.font?.size || 16;
console.log("ಫಾಂಟ್ ಗಾತ್ರ:", fontSize); // ಔಟ್ಪುಟ್: 16 (ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯ)
const color = userPreferences?.theme?.color || "light";
console.log("ಬಣ್ಣದ ಥೀಮ್:", color); // ಔಟ್ಪುಟ್: dark
3. ಈವೆಂಟ್ ಲಿಸನರ್ಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು
ಈವೆಂಟ್ ಲಿಸನರ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ, ನೀವು ಈವೆಂಟ್ ಆಬ್ಜೆಕ್ಟ್ನ ಪ್ರಾಪರ್ಟಿಗಳನ್ನು ಅಕ್ಸೆಸ್ ಮಾಡಬೇಕಾಗಬಹುದು. ಈವೆಂಟ್ ಆಬ್ಜೆಕ್ಟ್ ಅಥವಾ ಅದರ ಪ್ರಾಪರ್ಟಿಗಳು ವ್ಯಾಖ್ಯಾನಿಸದಿದ್ದರೆ ಎರರ್ಗಳನ್ನು ತಡೆಯಲು ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಸಹಾಯ ಮಾಡುತ್ತದೆ.
document.getElementById('myButton').addEventListener('click', function(event) {
// ಟಾರ್ಗೆಟ್ ಎಲಿಮೆಂಟ್ನ ID ಯನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಅಕ್ಸೆಸ್ ಮಾಡಿ
const targetId = event?.target?.id;
console.log("ಟಾರ್ಗೆಟ್ ID:", targetId);
});
4. ಅಂತರರಾಷ್ಟ್ರೀಕರಣ (i18n)
ಬಹುಭಾಷಾ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ, ಬಳಕೆದಾರರ ಲೊಕೇಲ್ ಆಧಾರದ ಮೇಲೆ ನೆಸ್ಟೆಡ್ ಆಬ್ಜೆಕ್ಟ್ನಿಂದ ಅನುವಾದಿತ ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು ನೀವು ಅಕ್ಸೆಸ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಈ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ.
const translations = {
en: {
greeting: "Hello",
farewell: "Goodbye"
},
fr: {
greeting: "Bonjour",
//farewell: "Au Revoir" - ಪ್ರದರ್ಶನಕ್ಕಾಗಿ ತೆಗೆದುಹಾಕಲಾಗಿದೆ
}
};
const locale = "fr";
// ಅನುವಾದಿತ ಶುಭಾಶಯವನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಅಕ್ಸೆಸ್ ಮಾಡಿ
const greeting = translations?.[locale]?.greeting || "Hello";
console.log("ಶುಭಾಶಯ:", greeting); // ಔಟ್ಪುಟ್: Bonjour
// ಅನುವಾದಿತ ವಿದಾಯವನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಅಕ್ಸೆಸ್ ಮಾಡಿ
const farewell = translations?.[locale]?.farewell || "Goodbye";
console.log("ವಿದಾಯ:", farewell); //ಔಟ್ಪುಟ್: Goodbye (ಇಂಗ್ಲಿಷ್ಗೆ ಡೀಫಾಲ್ಟ್ ಆಗುತ್ತದೆ)
ಫಂಕ್ಷನ್ ಕಾಲ್ಗಳೊಂದಿಗೆ ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್
ಅಸ್ತಿತ್ವದಲ್ಲಿ ಇಲ್ಲದಿರಬಹುದಾದ ಫಂಕ್ಷನ್ಗಳನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಕಾಲ್ ಮಾಡಲು ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಅನ್ನು ಬಳಸಬಹುದು. ಇದಕ್ಕಾಗಿ ?.()
ಸಿಂಟ್ಯಾಕ್ಸ್ ಬಳಸಿ.
const myObject = {
myMethod: function() {
console.log("ಮೆಥಡ್ ಕಾಲ್ ಆಗಿದೆ!");
}
};
// ಮೆಥಡ್ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ ಅದನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಕಾಲ್ ಮಾಡಿ
myObject?.myMethod?.(); // ಔಟ್ಪುಟ್: ಮೆಥಡ್ ಕಾಲ್ ಆಗಿದೆ!
const myObject2 = {};
// ಮೆಥಡ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಕಾಲ್ ಮಾಡಿ, ಆದರೆ ಅದು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ
myObject2?.myMethod?.(); // ಎರರ್ ಇಲ್ಲ, ಏನೂ ಆಗುವುದಿಲ್ಲ
ಅರೇ ಅಕ್ಸೆಸ್ನೊಂದಿಗೆ ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್
ಅರೇ ಅಕ್ಸೆಸ್ನೊಂದಿಗೂ ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಅನ್ನು ಬಳಸಬಹುದು, ?.[index]
ಸಿಂಟ್ಯಾಕ್ಸ್ ಬಳಸಿ. ಇದು ಖಾಲಿ ಅಥವಾ ಸಂಪೂರ್ಣವಾಗಿ ತುಂಬದ ಅರೇಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ ಉಪಯುಕ್ತವಾಗಿದೆ.
const myArray = ["apple", "banana", "cherry"];
// ಅರೇ ಎಲಿಮೆಂಟ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಅಕ್ಸೆಸ್ ಮಾಡಿ
const firstElement = myArray?.[0]; // "apple"
const myArray2 = [];
// ಅರೇ ಎಲಿಮೆಂಟ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಅಕ್ಸೆಸ್ ಮಾಡಿ, undefined ಆಗಿರುತ್ತದೆ.
const firstElement2 = myArray2?.[0]; // undefined
const secondElement = myArray?.[10]; // undefined (ಎರರ್ ಇಲ್ಲ)
ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಅನ್ನು ನಲಿಶ್ ಕೊಲೆಸಿಂಗ್ನೊಂದಿಗೆ ಸಂಯೋಜಿಸುವುದು
ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಸಾಮಾನ್ಯವಾಗಿ ನಲಿಶ್ ಕೊಲೆಸಿಂಗ್ ಆಪರೇಟರ್ (??
) ಜೊತೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ನಲಿಶ್ ಕೊಲೆಸಿಂಗ್ ಆಪರೇಟರ್, ಆಪರೇಟರ್ನ ಎಡಭಾಗವು null ಅಥವಾ undefined ಆಗಿದ್ದಾಗ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಪ್ರಾಪರ್ಟಿ ಕಾಣೆಯಾದಾಗ ಫಾಲ್ಬ್ಯಾಕ್ ಮೌಲ್ಯಗಳನ್ನು ಒದಗಿಸಲು ಇದು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
const user = {};
// ಬಳಕೆದಾರರ ಹೆಸರನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಅಕ್ಸೆಸ್ ಮಾಡಿ, ಅದು ಸೆಟ್ ಆಗದಿದ್ದರೆ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ
const name = user?.profile?.name ?? "ಅಪರಿಚಿತ ಬಳಕೆದಾರ";
console.log("ಹೆಸರು:", name); // ಔಟ್ಪುಟ್: ಅಪರಿಚಿತ ಬಳಕೆದಾರ
ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, user.profile
ಅಥವಾ user.profile.name
null ಅಥವಾ undefined ಆಗಿದ್ದರೆ, name
ವೇರಿಯೇಬಲ್ಗೆ "ಅಪರಿಚಿತ ಬಳಕೆದಾರ" ಮೌಲ್ಯವನ್ನು ನಿಯೋಜಿಸಲಾಗುತ್ತದೆ.
ಬ್ರೌಸರ್ ಹೊಂದಾಣಿಕೆ
ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನ ತುಲನಾತ್ಮಕವಾಗಿ ಹೊಸ ವೈಶಿಷ್ಟ್ಯವಾಗಿದೆ (ECMAScript 2020 ರಲ್ಲಿ ಪರಿಚಯಿಸಲಾಗಿದೆ). ಇದು ಎಲ್ಲಾ ಆಧುನಿಕ ಬ್ರೌಸರ್ಗಳಿಂದ ಬೆಂಬಲಿತವಾಗಿದೆ. ನೀವು ಹಳೆಯ ಬ್ರೌಸರ್ಗಳನ್ನು ಬೆಂಬಲಿಸಬೇಕಾದರೆ, ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಹೊಂದಾಣಿಕೆಯಾಗುವ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಆವೃತ್ತಿಗೆ ಪರಿವರ್ತಿಸಲು ನೀವು Babel ನಂತಹ ಟ್ರಾನ್ಸ್ಪೈಲರ್ ಅನ್ನು ಬಳಸಬೇಕಾಗಬಹುದು.
ಮಿತಿಗಳು
- ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಅನ್ನು ಪ್ರಾಪರ್ಟಿಗಳನ್ನು ಅಕ್ಸೆಸ್ ಮಾಡಲು ಮಾತ್ರ ಬಳಸಬಹುದು, ಮೌಲ್ಯಗಳನ್ನು ನಿಯೋಜಿಸಲು ಅಲ್ಲ. ನೀವು ಅದನ್ನು ಅಸೈನ್ಮೆಂಟ್ನ ಎಡಭಾಗದಲ್ಲಿ ಬಳಸಲು ಸಾಧ್ಯವಿಲ್ಲ.
- ಅತಿಯಾದ ಬಳಕೆಯು ಸಂಭಾವ್ಯ ಎರರ್ಗಳನ್ನು ಮರೆಮಾಡಬಹುದು. ರನ್ಟೈಮ್ ವಿನಾಯಿತಿಗಳನ್ನು ತಡೆಯುವುದು ಒಳ್ಳೆಯದು, ಆದರೆ ಪ್ರಾಪರ್ಟಿ ಏಕೆ ಕಾಣೆಯಾಗಿದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಇನ್ನೂ ಮುಖ್ಯ. ಆಧಾರವಾಗಿರುವ ಡೇಟಾ ಸಮಸ್ಯೆಗಳನ್ನು ಗುರುತಿಸಲು ಮತ್ತು ಪರಿಹರಿಸಲು ಸಹಾಯ ಮಾಡಲು ಲಾಗಿಂಗ್ ಅಥವಾ ಇತರ ಡೀಬಗ್ಗಿಂಗ್ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಸೇರಿಸುವುದನ್ನು ಪರಿಗಣಿಸಿ.
ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು
- ಒಂದು ಪ್ರಾಪರ್ಟಿ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆಯೇ ಎಂದು ನಿಮಗೆ ಖಚಿತವಿಲ್ಲದಿದ್ದಾಗ ಇದನ್ನು ಬಳಸಿ: ಪ್ರಾಪರ್ಟಿಗಳು ಕಾಣೆಯಾಗಿರುವ ಅಥವಾ null ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿರುವ ಡೇಟಾ ಮೂಲಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸುವಾಗ ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಅತ್ಯಂತ ಉಪಯುಕ್ತವಾಗಿದೆ.
- ಇದನ್ನು ನಲಿಶ್ ಕೊಲೆಸಿಂಗ್ನೊಂದಿಗೆ ಸಂಯೋಜಿಸಿ: ಪ್ರಾಪರ್ಟಿ ಕಾಣೆಯಾದಾಗ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯಗಳನ್ನು ಒದಗಿಸಲು ನಲಿಶ್ ಕೊಲೆಸಿಂಗ್ ಆಪರೇಟರ್ (
??
) ಬಳಸಿ. - ಅತಿಯಾದ ಬಳಕೆಯನ್ನು ತಪ್ಪಿಸಿ: ಸಂಭಾವ್ಯ ಎರರ್ಗಳನ್ನು ಮರೆಮಾಡುವುದನ್ನು ತಪ್ಪಿಸಲು ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಅನ್ನು ವಿವೇಚನೆಯಿಲ್ಲದೆ ಬಳಸಬೇಡಿ. ಅಗತ್ಯವಿದ್ದಾಗ ಮಾತ್ರ ಅದನ್ನು ಬಳಸಿ.
- ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಡಾಕ್ಯುಮೆಂಟ್ ಮಾಡಿ: ನೀವು ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಅನ್ನು ಏಕೆ ಬಳಸುತ್ತಿರುವಿರಿ ಮತ್ತು ಪ್ರಾಪರ್ಟಿ ಕಾಣೆಯಾದಾಗ ನಿರೀಕ್ಷಿತ ನಡವಳಿಕೆ ಏನು ಎಂಬುದನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಡಾಕ್ಯುಮೆಂಟ್ ಮಾಡಿ.
ತೀರ್ಮಾನ
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನ ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಆಪರೇಟರ್ ಸ್ವಚ್ಛ, ಸುರಕ್ಷಿತ ಮತ್ತು ಹೆಚ್ಚು ದೃಢವಾದ ಕೋಡ್ ಬರೆಯಲು ಒಂದು ಶಕ್ತಿಯುತ ಸಾಧನವಾಗಿದೆ. ಸಂಭಾವ್ಯವಾಗಿ ಕಾಣೆಯಾದ ಪ್ರಾಪರ್ಟಿಗಳನ್ನು ಅಕ್ಸೆಸ್ ಮಾಡಲು ಸಂಕ್ಷಿಪ್ತ ಮಾರ್ಗವನ್ನು ಒದಗಿಸುವ ಮೂಲಕ, ಇದು ಎರರ್ಗಳನ್ನು ತಡೆಯಲು, ಬಾಯ್ಲರ್ಪ್ಲೇಟ್ ಕಡಿಮೆ ಮಾಡಲು ಮತ್ತು ಕೋಡ್ ಓದುವಿಕೆಯನ್ನು ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಇದು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಮೂಲಕ ಮತ್ತು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಅನುಸರಿಸುವ ಮೂಲಕ, ನೀವು ಹೆಚ್ಚು ಸ್ಥಿತಿಸ್ಥಾಪಕ ಮತ್ತು ನಿರ್ವಹಿಸಬಹುದಾದ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಅನ್ನು ಬಳಸಿಕೊಳ್ಳಬಹುದು.
ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ಗಳಲ್ಲಿ ಆಪ್ಷನಲ್ ಚೈನಿಂಗ್ ಅನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಿ ಮತ್ತು ಸುರಕ್ಷಿತ ಹಾಗೂ ಸುಂದರ ಪ್ರಾಪರ್ಟಿ ಅಕ್ಸೆಸ್ನ ಪ್ರಯೋಜನಗಳನ್ನು ಅನುಭವಿಸಿ. ಇದು ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಹೆಚ್ಚು ಓದಬಲ್ಲ, ಕಡಿಮೆ ಎರರ್-ಪೀಡಿತ, ಮತ್ತು ಅಂತಿಮವಾಗಿ, ನಿರ್ವಹಿಸಲು ಸುಲಭವಾಗಿಸುತ್ತದೆ. ಹ್ಯಾಪಿ ಕೋಡಿಂಗ್!