JavaScript में ऑब्जेक्ट में आइटम्स जोड़ने के दो तरीके हैं:
- डॉट नोटेशन:
object.thingToAdd - ब्रैकेट नोटेशन:
object['thingToAdd']
डॉट नोटेशन
आइए पहले डॉट नोटेशन देखें:
let dog = {
name: "Naya",
age: "2",
color: "black",
}
// dog ऑब्जेक्ट में आइटम जोड़ें
dog.breed = "Rottweiler mix"
// ऑब्जेक्ट को कंसोल पर लॉग करें
console.log(dog)
// { name: "Naya", age: "2", color: "black", breed: "Rottweiler mix", }
यह डॉट नोटेशन है।
ब्रैकेट नोटेशन
ब्रैकेट नोटेशन में ऑब्जेक्ट में प्रॉपर्टीज़ जोड़ने के तरीके पर कम प्रतिबंध हैं। आइए पहले वाले उसी डॉग ऑब्जेक्ट को देखें:
let dog = {
name: "Naya",
age: "2",
color: "black",
}
अब ब्रैकेट नोटेशन के साथ इसमें एक प्रॉपर्टी और वैल्यू जोड़ते हैं:
dog["weight"] = "34kg"
console.log(dog)
// { name: "Naya", age: "2", color: "black", weight: "34kg", }
जैसा कि आप देख सकते हैं, यह विशिष्ट उदाहरण में डॉट नोटेशन के समान ही काम करता है।
अब दोनों मेथड्स की तुलना करते हैं।
डॉट नोटेशन बनाम ब्रैकेट नोटेशन
डॉट नोटेशन का उपयोग करके एक नंबर को नई प्रॉपर्टी नाम के रूप में जोड़ने का प्रयास करें:
// डॉट नोटेशन
dog.1 = "Property 1"
console.log(dog) // Uncaught SyntaxError: Unexpected number
अरे, आपको एक एरर मिला! ऐसा इसलिए है क्योंकि डॉट नोटेशन के साथ आप प्रॉपर्टी नामों में नंबर्स का उपयोग नहीं कर सकते।
लेकिन आप ब्रैकेट नोटेशन के साथ नंबर्स का उपयोग कर सकते हैं, जब तक आपका आइडेंटिफायर स्ट्रिंग के रूप में फॉर्मेट किया गया है:
// ब्रैकेट नोटेशन
dog["1"] = "Property 1"
console.log(dog)
// { 1: "Property 1", age: "2", color: "black", name: "Naya" }
फिर से, ब्रैकेट नोटेशन डॉट नोटेशन की तुलना में अधिक लचीला है।
आपको किसका उपयोग करना चाहिए?
जब भी आप कर सकते हैं डॉट नोटेशन का उपयोग करना एक अच्छी प्रैक्टिस है क्योंकि यह पढ़ने में आसान है। लेकिन जब भी आपको किसी ऑब्जेक्ट में प्रॉपर्टी जोड़नी हो, और प्रॉपर्टी को नंबर, विशेष सिम्बल, या किसी रिजर्व्ड कीवर्ड से शुरू करने की आवश्यकता हो, तो ब्रैकेट नोटेशन का उपयोग करें।
डॉट नोटेशन:
- प्रॉपर्टी आइडेंटिफायर्स (नाम) में केवल अल्फान्यूमेरिक (a-z) कैरेक्टर्स, अंडरस्कोर (
_), या$हो सकते हैं। - प्रॉपर्टी आइडेंटिफायर्स नंबर से शुरू नहीं हो सकते।
- प्रॉपर्टी आइडेंटिफायर्स वेरिएबल्स नहीं रख सकते।
ब्रैकेट नोटेशन:
- प्रॉपर्टी आइडेंटिफायर्स (नाम) स्ट्रिंग वैल्यू टाइप या एक वेरिएबल होना चाहिए जो रेफरेंस करता है एक स्ट्रिंग को।
- आइडेंटिफायर्स पर स्पेस का उपयोग कर सकते हैं
[" property"], - स्ट्रिंग आइडेंटिफायर्स नंबर्स से शुरू हो सकते हैं
["1st"]