जावास्क्रिप्ट में अप्रत्याशित स्ट्रिंग संयोजन
जावास्क्रिप्ट में, अजीब अभिव्यक्ति [[]][ []] [ []] आश्चर्यजनक रूप से उत्पन्न होती है स्ट्रिंग "10"। इस व्यवहार के पीछे की जटिल प्रक्रिया को समझने के लिए इसके व्यक्तिगत घटकों को तोड़ने की आवश्यकता है:
[[]] [ []]
पहले घटक का अनावरण: [[]]
उपसर्ग वृद्धि ऑपरेटर अपने ऑपरेंड को एक से बढ़ाता है और बढ़ा हुआ परिणाम लौटाता है। इस मामले में, ऑपरेंड [[]] है, जो खाली सरणी ([]) का मूल्यांकन करता है। किसी सरणी को बढ़ाना तर्कसंगत नहीं है, लेकिन जावास्क्रिप्ट ऑपरेटर का उपयोग करके सरणी को एक संख्या में परिवर्तित करके ऐसे मामलों को समायोजित करता है।
रूपांतरण को समझना: [[]]
ऑपरेटर, जब किसी सरणी पर लागू होता है, तो उसे एक संख्या में बदलने का प्रयास करता है। हालाँकि, एक खाली सरणी झूठ का मूल्यांकन करती है, जो संख्या 0 में जमा हो जाती है। इस प्रकार, [[]] 0 के बराबर हो जाता है, या बस 0.
दूसरा घटक: [ []]
उसी तर्क का पालन करते हुए, [ []] भी खाली सरणी को परिवर्तित करता है 0.
इसे एक साथ लाना: (0 1) [0]
बढ़ी हुई अभिव्यक्ति 1 (0 1) हो जाती है, जिसे बाद में [0] में जोड़ा जाता है। जावास्क्रिप्ट में, सरणियों को उनके तत्वों को अल्पविराम से जोड़कर स्ट्रिंग में ज़ब्त किया जा सकता है। इसलिए, [0] "0" के बराबर है (एक तत्व के साथ एक सरणी में शामिल होने से तत्व स्वयं में परिणामित होता है)। अब 1 "0" हो गया है, जिसे जावास्क्रिप्ट स्ट्रिंग के रूप में संयोजित करने का प्रयास करता है। परिणाम "10" है। ]
[] खाली सरणी को 0 (संख्या) में परिवर्तित करता है।एक से वृद्धि करने पर परिणाम 1 होता है। (संख्या).
सरणी में शामिल होने से [0] "0" (स्ट्रिंग) उत्पन्न होता है।संख्या 1 और 0 को जोड़ने से वे स्ट्रिंग में जुड़ जाते हैं, जिसके परिणामस्वरूप "1" और "0, "क्रमशः।स्ट्रिंग्स को जोड़ने पर "10" प्राप्त होता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3