कोड की यह रेखा एक अभिव्यक्ति का मूल्यांकन करती है और फिर लौटे मूल्य के आधार पर एक विधि कहती है।
अभिव्यक्ति ('b' + 'a' + + 'a' + 'a')
पूरी तरह से स्ट्रिंग शाब्दिक और अतिरिक्त ऑपरेटरों से बना है।
- स्ट्रिंग लिटरल्स "एक स्ट्रिंग शाब्दिक शून्य या अधिक वर्ण एकल या दोहरे उद्धरणों में संलग्न है।"
- परिवर्धन ऑपरेटर (+) "अतिरिक्त संचालक या तो स्ट्रिंग संयोजन या संख्यात्मक जोड़ करता है।"
एक निहित कार्रवाई एक स्ट्रिंग पर ToNumber के लिए कॉल है
- स्ट्रिंग के प्रकार के लिए लागू किया गया "स्ट्रिंग्स पर लागू किया जाने वाला टर्नबेरी इनपुट स्ट्रिंग के लिए व्याकरण लागू करता है। यदि व्याकरण स्ट्रिंग को स्टिंगन्यूमेरिकलिटरल के विस्तार के रूप में व्याख्या नहीं कर सकता है, तो टर्नबेर का परिणाम NaN है।"
दुभाषिया के पास अभिव्यक्ति के पार्स करने के नियम हैं, इसे बाएं और दाएं हाथ के भावों के घटकों में तोड़कर।
चरण 1: 'b' + 'a'
वाम अभिव्यक्ति: 'b'
वाम मूल्य: 'बी'
ऑपरेटर: + (अभिव्यक्ति पक्षों में से एक स्ट्रिंग है, इसलिए स्ट्रिंग संयोजन)
सही अभिव्यक्ति: 'a'
सही मूल्य: 'ए'
परिणाम: 'ba'
चरण 2: 'ba' + + 'a'
वाम अभिव्यक्ति: 'ba'
वाम मूल्य: 'बा'
ऑपरेटर: + (अभिव्यक्ति पक्षों में से एक स्ट्रिंग है, इसलिए स्ट्रिंग संयोजन)
राइट एक्सप्रेशन: + 'a'
(यह चरित्र के गणित मान का मूल्यांकन करता है 'a' यह मानते हुए कि यह + साइन से एक पॉजिटिव नंबर है - माइनस साइन ने भी एक नेगेटिव नंबर का संकेत देते हुए यहां काम किया होगा - जिसके परिणामस्वरूप NaN)
राइट वैल्यू: NaN (क्योंकि संचालक स्ट्रिंग का संघनन है, संघनन के दौरान इस मूल्य पर String को कहा जाता है)
परिणाम: 'baNaN'
चरण 3: 'baNaN' + 'a'
वाम अभिव्यक्ति: 'baNaN'
वाम मूल्य: 'baNaN'
ऑपरेटर: + (अभिव्यक्ति पक्षों में से एक स्ट्रिंग है, इसलिए स्ट्रिंग संयोजन)
सही अभिव्यक्ति: 'a'
सही मूल्य: 'ए'
परिणाम: 'baNaNa'
इसके बाद समूहन अभिव्यक्ति का मूल्यांकन किया गया है, और toLowerCase को कहा जाता है जो हमें केले के साथ छोड़ देता है।
+"a"
हैNaN
।