विरोधाभास को समझना: ऑब्जेक्ट के साथ टाइपऑफ ऐरे "ऑब्जेक्ट" क्यों लौटाता है
डेवलपर्स को एक आश्चर्यजनक घटना का सामना करना पड़ सकता है: जब किसी ऐरे पर टाइपऑफ का आह्वान किया जाता है ऑब्जेक्ट युक्त होने पर, यह बेवजह "सरणी" के बजाय "ऑब्जेक्ट" लौटाता है। यह आलेख इस प्रतीत होता है विरोधाभासी व्यवहार पर प्रकाश डालता है।
एक उदाहरण की जांच करके, आइए इस मुद्दे को स्पष्ट करें:
$.ajax({
url: 'http://api.twitter.com/1/statuses/user_timeline.json',
data: { screen_name: 'mick__romney'},
dataType: 'jsonp',
success: function(data) {
console.dir(data); //Array[20]
alert(typeof data); //Object
}
});
जबकि console.dir(data) वेरिएबल को एक सरणी के रूप में सही ढंग से पहचानता है, typeof डेटा असंगत रूप से "ऑब्जेक्ट" लौटाता है।
स्पष्टीकरण जावास्क्रिप्ट के विशिष्ट विनिर्देश में निहित है, जहां typeof ऑपरेटर ऑब्जेक्ट की आंतरिक [[क्लास]] संपत्ति का प्रकार लौटाता है। सरणियों के मामले में, उनकी [[क्लास]] संपत्ति "ऐरे" पर सेट होती है, लेकिन जब वस्तुओं से घिरी होती है, तो [[क्लास]] संपत्ति "ऑब्जेक्ट" में बदल जाती है।
सटीक प्रकार की जांच सुनिश्चित करने के लिए , डेवलपर्स विभिन्न तरीकों को नियोजित कर सकते हैं:
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3