जावास्क्रिप्ट गणना ऑपरेटर। जावास्क्रिप्ट ऑपरेटर। सरणियाँ और जनरेटर बनाने के लिए सरलीकृत वाक्यविन्यास

💖यह पसंद है?लिंक को अपने दोस्तों के साथ साझा करें

यह अध्याय जावास्क्रिप्ट के भावों और ऑपरेटरों का वर्णन करता है, जिसमें असाइनमेंट, तुलना, अंकगणित, बिटवाइज, तार्किक, स्ट्रिंग, टर्नरी और बहुत कुछ शामिल है।

संदर्भ में ऑपरेटरों और अभिव्यक्तियों की एक पूरी और विस्तृत सूची भी उपलब्ध है।

ऑपरेटर्स

जावास्क्रिप्ट में निम्नलिखित प्रकार के ऑपरेटर हैं। यह अनुभाग ऑपरेटरों का वर्णन करता है और इसमें ऑपरेटर प्राथमिकता के बारे में जानकारी शामिल है।

जावास्क्रिप्ट में दोनों हैं द्विआधारीऔर एकलऑपरेटर, और एक विशेष टर्नरी ऑपरेटर, सशर्त ऑपरेटर। एक बाइनरी ऑपरेटर को दो ऑपरेंड की आवश्यकता होती है, एक ऑपरेटर से पहले और एक ऑपरेटर के बाद:

संकार्य1 ऑपरेटर संकार्य2

उदाहरण के लिए, 3+4 या x*y .

एक यूनरी ऑपरेटर को ऑपरेटर से पहले या बाद में एकल ऑपरेंड की आवश्यकता होती है:

ऑपरेटर ओपेरंड ओपेरंड ऑपरेटर 12; // 0.5 1/2 == 1.0/2.0; // यह सच है

मानक अंकगणितीय परिचालन (+, -, * /) के अलावा, जावास्क्रिप्ट निम्नलिखित तालिका में सूचीबद्ध अंकगणितीय ऑपरेटर प्रदान करता है:

अंकगणितीय आपरेटर
ऑपरेटर विवरण उदाहरण
शेष (%) बाइनरी ऑपरेटर. दो ऑपरेंड को विभाजित करने पर पूर्णांक शेषफल लौटाता है। 12% 5 रिटर्न 2.
वेतन वृद्धि (++) यूनरी ऑपरेटर. इसके ऑपरेंड में एक जोड़ता है। यदि उपसर्ग ऑपरेटर (++x) के रूप में उपयोग किया जाता है, तो एक जोड़ने के बाद इसके ऑपरेंड का मान लौटाता है; यदि पोस्टफ़िक्स ऑपरेटर (x++) के रूप में उपयोग किया जाता है, तो एक जोड़ने से पहले इसके ऑपरेंड का मान लौटाता है। यदि x 3 है, तो ++x x को 4 पर सेट करता है और 4 लौटाता है, जबकि x++ 3 लौटाता है और, केवल तभी, x को 4 पर सेट करता है।
कमी (--) यूनरी ऑपरेटर. इसके ऑपरेंड में से एक को घटाता है। रिटर्न वैल्यू इंक्रीमेंट ऑपरेटर के समान है। यदि x 3 है, तो --x x को 2 पर सेट करता है और 2 लौटाता है, जबकि x-- 3 लौटाता है और, केवल तभी, x को 2 पर सेट करता है।
एकात्मक निषेध (-) यूनरी ऑपरेटर. इसके ऑपरेंड का निषेधन लौटाता है। यदि x 3 है, तो -x -3 लौटाता है।
यूनरी प्लस (+) यूनरी ऑपरेटर. ऑपरेंड को किसी संख्या में बदलने का प्रयास, यदि यह पहले से नहीं है। +"3" 3 लौटाता है।
+सच्चा रिटर्न 1.
घातीय संचालिका (**) आधार से घातांक घात की गणना करता है, अर्थात आधार घातांक 2 ** 3 रिटर्न 8।
10 ** -1 0.1 लौटाता है।

बिटवाइज़ ऑपरेटर

जब आपको रनटाइम पर किसी ऑब्जेक्ट के प्रकार की पुष्टि करने की आवश्यकता हो तो Instof का उपयोग करें। उदाहरण के लिए, अपवादों को पकड़ते समय, आप फेंके गए अपवाद के प्रकार के आधार पर अलग-अलग अपवाद-हैंडलिंग कोड पर शाखा लगा सकते हैं।

उदाहरण के लिए, निम्न कोड यह निर्धारित करने के लिए इंस्टेंसऑफ़ का उपयोग करता है कि क्या दिन एक दिनांक ऑब्जेक्ट है। क्योंकि दिन एक दिनांक ऑब्जेक्ट है, यदि कथन में कथन निष्पादित होते हैं।

वार द डे = नई तारीख(1995, 12, 17); यदि (दिनांक का उदाहरण) ( // निष्पादित करने के लिए कथन)

संचालक वरीयता

प्रधानताऑपरेटरों का क्रम यह निर्धारित करता है कि किसी अभिव्यक्ति का मूल्यांकन करते समय उन्हें कैसे लागू किया जाता है। आप कोष्ठक का उपयोग करके ऑपरेटर प्राथमिकता को ओवरराइड कर सकते हैं।

निम्न तालिका उच्चतम से निम्नतम तक ऑपरेटरों की प्राथमिकता का वर्णन करती है।

संचालक वरीयता
ऑपरेटर प्रकार व्यक्तिगत ऑपरेटर
सदस्य .
कॉल करें/उदाहरण बनाएं () नया
निषेध/वृद्धि ! ~ - +++ -- टाइपऑफ़ वॉयड डिलीट
गुणा/विभाजन * / %
जोड़/घटाव + -
बिटवाइज़ शिफ्ट << >> >>>
रिलेशनल < <= >>=उदाहरण
समानता == != === !==
बिटवाइज-और &
बिटवाइज़-xor ^
बिटवाइज़ या |
तार्किक-और &&
तार्किक या ||
सशर्त ?:
कार्यभार = += -= *= /= %= <<= >>= >>>= &= ^= |=
अल्पविराम ,

इस तालिका का अधिक विस्तृत संस्करण, प्रत्येक ऑपरेटर के बारे में अतिरिक्त विवरण के लिंक के साथ, जावास्क्रिप्ट संदर्भ में पाया जा सकता है।

अभिव्यक्ति

एक अभिव्यक्तिकोड की कोई वैध इकाई है जो किसी मान का समाधान करती है।

प्रत्येक वाक्यात्मक रूप से मान्य अभिव्यक्ति किसी न किसी मूल्य को हल करती है लेकिन वैचारिक रूप से, दो प्रकार की अभिव्यक्तियाँ होती हैं: साइड इफेक्ट्स के साथ (उदाहरण के लिए: वे जो एक चर के लिए मान निर्दिष्ट करते हैं) और वे जो कुछ अर्थों में मूल्यांकन करते हैं और इसलिए एक मूल्य का समाधान करते हैं।

अभिव्यक्ति x = 7 पहले प्रकार का एक उदाहरण है। यह अभिव्यक्ति = का उपयोग करती है ऑपरेटरवेरिएबल x को मान सात निर्दिष्ट करने के लिए। अभिव्यक्ति स्वयं सात का मूल्यांकन करती है।

कोड 3 + 4 दूसरे अभिव्यक्ति प्रकार का एक उदाहरण है। यह अभिव्यक्ति एक चर में परिणाम, सात, बताए बिना तीन और चार को एक साथ जोड़ने के लिए + ऑपरेटर का उपयोग करती है।

जावास्क्रिप्ट में निम्नलिखित अभिव्यक्ति श्रेणियां हैं:

प्राथमिक अभिव्यक्तियाँ

जावास्क्रिप्ट में बुनियादी कीवर्ड और सामान्य अभिव्यक्तियाँ।

यह

वर्तमान ऑब्जेक्ट को संदर्भित करने के लिए इस कीवर्ड का उपयोग करें। सामान्य तौर पर, यह एक विधि में कॉलिंग ऑब्जेक्ट को संदर्भित करता है। इसका प्रयोग या तो बिंदु या ब्रैकेट नोटेशन के साथ करें:

यह["संपत्तिनाम"] यह.संपत्तिनाम

मान लीजिए कि वैलिडेट नामक फ़ंक्शन किसी ऑब्जेक्ट की वैल्यू प्रॉपर्टी को मान्य करता है, यह देखते हुए वस्तु औरउच्च और निम्न मान:

फ़ंक्शन वैलिडेट(obj, lowval, hival) ( if ((obj.value< lowval) || (obj.value >हिवल)) कंसोल.लॉग ("अमान्य मान!"); )

आप प्रत्येक फॉर्म एलिमेंट के ऑनचेंज इवेंट हैंडलर में वैलिडेट को कॉल कर सकते हैं, इसे फॉर्म एलिमेंट में पास करने के लिए इसका उपयोग कर सकते हैं, जैसा कि निम्नलिखित उदाहरण में है:

18 और 99 के बीच कोई संख्या दर्ज करें:

ग्रुपिंग ऑपरेटर

ग्रुपिंग ऑपरेटर () अभिव्यक्तियों में मूल्यांकन की प्राथमिकता को नियंत्रित करता है। उदाहरण के लिए, आप पहले जोड़ का मूल्यांकन करने के लिए पहले गुणा और भाग को, फिर जोड़ और घटाव को ओवरराइड कर सकते हैं।

वर = 1; वर बी = 2; वर सी = 3; // डिफ़ॉल्ट प्राथमिकता ए + बी * सी // 7 // डिफ़ॉल्ट रूप से इस तरह मूल्यांकन किया जाता है ए + (बी * सी) // 7 // अब ओवरराइडिंग प्राथमिकता // गुणन से पहले जोड़ (ए + बी) * सी // 9 / / जो a * c + b * c //9 के बराबर है

बायीं ओर के भाव

बाएँ मान किसी असाइनमेंट का गंतव्य हैं।

नया

आप उपयोगकर्ता द्वारा परिभाषित ऑब्जेक्ट प्रकार या अंतर्निहित ऑब्जेक्ट प्रकारों में से किसी एक का उदाहरण बनाने के लिए नए ऑपरेटर का उपयोग कर सकते हैं। नए का उपयोग इस प्रकार करें:

वार ऑब्जेक्टनाम = नया ऑब्जेक्टटाइप();

बहुत अच्छा

सुपर कीवर्ड का उपयोग किसी ऑब्जेक्ट के पैरेंट पर फ़ंक्शन को कॉल करने के लिए किया जाता है। उदाहरण के लिए, पैरेंट कंस्ट्रक्टर को कॉल करने के लिए यह कक्षाओं के साथ उपयोगी है।

बहुत अच्छा(); // पैरेंट कंस्ट्रक्टर को कॉल करता है। सुपर.फंक्शनऑनपेरेंट();

स्प्रेड ऑपरेटर

स्प्रेड ऑपरेटर एक अभिव्यक्ति को उन स्थानों पर विस्तारित करने की अनुमति देता है जहां एकाधिक तर्क (फ़ंक्शन कॉल के लिए) या एकाधिक तत्व (सरणी शाब्दिक के लिए) अपेक्षित हैं।

उदाहरण:आज यदि आपके पास एक सरणी है और आप मौजूदा सरणी को उसका हिस्सा बनाकर एक नई सरणी बनाना चाहते हैं, तो सरणी का शाब्दिक सिंटैक्स अब पर्याप्त नहीं है और आपको पुश, स्प्लिस, कॉनकैट के संयोजन का उपयोग करके अनिवार्य कोड पर वापस जाना होगा। वगैरह। स्प्रेड सिंटैक्स के साथ यह और अधिक संक्षिप्त हो जाता है:

वर भाग = ["कंधे", "घुटने"]; var गीत = ["सिर", ...भाग, "और", "पैर की उंगलियां"];

इसी प्रकार, स्प्रेड ऑपरेटर फ़ंक्शन कॉल के साथ काम करता है:

फलन f(x, y, z) ( ) var args = ; एफ(...आर्ग्स);

यह अध्याय जावास्क्रिप्ट अभिव्यक्तियों और ऑपरेटरों जैसे असाइनमेंट, तुलना, अंकगणित, बिटवाइज़, तार्किक, स्ट्रिंग और विभिन्न विशेष ऑपरेटरों का वर्णन करता है।

पूर्ण और विस्तृत सूचीइस गाइड में ऑपरेटर्स और एक्सप्रेशन भी उपलब्ध हैं।

ऑपरेटर्स

जावास्क्रिप्ट में निम्नलिखित प्रकार के ऑपरेटर हैं। यह उपधारा प्रत्येक प्रकार का वर्णन करती है और एक-दूसरे पर उनकी प्राथमिकता के बारे में जानकारी शामिल करती है।

जावास्क्रिप्ट बाइनरी और यूनरी ऑपरेटरों के साथ-साथ एक अन्य विशेष टर्नरी ऑपरेटर, सशर्त ऑपरेटर का समर्थन करता है। एक बाइनरी ऑपरेशन दो ऑपरेंड का उपयोग करता है, एक ऑपरेटर से पहले और एक उसके बाद:

संकार्य1 ऑपरेटर संकार्य2

उदाहरण के लिए: 3+4 या x*y .

बदले में, यूनरी ऑपरेटर ऑपरेटर से पहले या बाद में एक ऑपरेंड का उपयोग करता है:

ऑपरेटर ओपेरंड ओपेरंड ऑपरेटर

उदाहरण के लिए: x++ या ++x।

असाइनमेंट ऑपरेटर

असाइनमेंट ऑपरेशन के परिणामस्वरूप, असाइनमेंट ऑपरेटर के बाईं ओर का ऑपरेंड ("= चिह्न) उस मान पर सेट होता है जो दाएं ऑपरेंड से लिया गया है। मूल असाइनमेंट ऑपरेटर = है, जो दाएं ऑपरेंड का मान बाईं ओर के ऑपरेंड को निर्दिष्ट करता है। तो अभिव्यक्ति x = y का अर्थ है कि x को y का मान दिया गया है।

ऐसे कंपाउंड असाइनमेंट ऑपरेटर भी हैं जिनका उपयोग निम्नलिखित तालिका में वर्णित संचालन के लिए शॉर्टहैंड में किया जाता है:

असाइनमेंट ऑपरेटरों की सूची
नाम आशुलिपि संचालक अर्थ
कार्यभार x=y x=y
जोड़ के साथ असाइनमेंट एक्स += वाई एक्स = एक्स + वाई
घटाव के साथ असाइनमेंट एक्स -= वाई एक्स = एक्स - वाई
गुणा के साथ असाइनमेंट एक्स *= वाई x=x*y
विभाजन के साथ असाइनमेंट एक्स /= वाई x=x/y
मोडुलो असाइनमेंट x %= y एक्स = एक्स % वाई
बाईं पाली का कार्य एक्स<<= y एक्स = एक्स<< y
सही शिफ्ट असाइनमेंट एक्स >>= वाई एक्स = एक्स >> वाई
अहस्ताक्षरित दाएँ बदलाव के साथ असाइनमेंट एक्स >>>= वाई एक्स = एक्स >>> वाई
बिटवाइज़ AND के साथ असाइनमेंट एक्स &= वाई x=x&y
बिटवाइज़ XOR के साथ असाइनमेंट एक्स ^= वाई x=x^y
बिटवाइज़ OR के साथ असाइनमेंट एक्स |= वाई एक्स = एक्स | य

विध्वंसक

अधिक जटिल असाइनमेंट के लिए, जावास्क्रिप्ट में एक डिस्ट्रक्टिंग सिंटैक्स है, जो एक अभिव्यक्ति है जो आपको सिंटैक्स का उपयोग करके सरणी या ऑब्जेक्ट से डेटा निकालने की अनुमति देती है जो सरणी कंस्ट्रक्टर और ऑब्जेक्ट शाब्दिक को प्रतिबिंबित करती है।

var foo = ["एक", "दो", "तीन"]; // कोई विध्वंसक नहीं var one = foo; वर्तवो = फू; वर तीन = फू; // विनाशकारी var = foo के साथ;

तुलना संचालक

आप अंतर्निहित रूप से घोषित वेरिएबल को हटाने के लिए डिलीट ऑपरेटर का उपयोग कर सकते हैं, लेकिन आप इसका उपयोग var के साथ घोषित वेरिएबल को हटाने के लिए नहीं कर सकते।

डिलीट ऑपरेटर को लागू करने के बाद, तत्व की संपत्ति को अपरिभाषित में बदल दिया जाता है। यदि ऑपरेशन संभव है तो डिलीट ऑपरेटर सत्य लौटाता है; यदि ऑपरेशन निष्पादित नहीं किया जा सकता है तो ऑपरेटर गलत रिटर्न देता है।

एक्स = 42; भिन्नता = 43; myobj = नया नंबर(); myobj.h = 4; // प्रॉपर्टी बनाएं h डिलीट x; // सत्य लौटाता है (स्पष्ट रूप से घोषित चर को हटाया जा सकता है) हटाएं y; // गलत रिटर्न देता है (var के साथ घोषित वैरिएबल को नहीं हटा सकता) Math.PI को हटाएं; // गलत रिटर्न देता है (अंतर्निहित गुणों को नहीं हटा सकता) myobj.h को हटा दें; // सत्य लौटाता है (कस्टम गुण हटाए जा सकते हैं) myobj हटाएं; // सत्य लौटाता है (आप स्पष्ट रूप से घोषित वस्तु को हटा सकते हैं)

सरणी तत्वों को हटाना

किसी सरणी तत्व को हटाने से सरणी की लंबाई प्रभावित नहीं होती है। उदाहरण के लिए, यदि आप a हटाते हैं, तो तत्व a ही रहता है और a अपरिभाषित हो जाता है।

जब डिलीट ऑपरेटर का उपयोग करके किसी सरणी तत्व को हटा दिया जाता है, तो उस तत्व का मान सरणी से हटा दिया जाता है। निम्नलिखित उदाहरण में, एलिमेंट ट्री को डिलीट ऑपरेटर का उपयोग करके हटा दिया जाता है। हालाँकि, पेड़ तत्व पता योग्य रहता है और अपरिभाषित लौटाता है।

वार पेड़ = नया ऐरे ("रेडवुड", "बे", "देवदार", "ओक", "मेपल"); पेड़ हटाओ; यदि (पेड़ों में 3) ( // स्थिति विफल रहती है )

यदि आप चाहते हैं कि कोई तत्व सरणी में बना रहे लेकिन उसका मान अपरिभाषित हो, तो डिलीट ऑपरेटर के बजाय अपरिभाषित कीवर्ड का उपयोग करें। निम्नलिखित उदाहरण में, पेड़ तत्व को अपरिभाषित पर सेट किया गया है, लेकिन तत्व सरणी में बना हुआ है:

वार पेड़ = नया ऐरे ("रेडवुड", "बे", "देवदार", "ओक", "मेपल"); पेड़ = अपरिभाषित; यदि (पेड़ों में 3) (//कोड का यह ब्लॉक निष्पादित किया जा रहा है)

प्रकार का ऑपरेटर

ऑपरेटर का प्रयोग करेंउदाहरण जब आपको रन टाइम पर किसी ऑब्जेक्ट के प्रकार की पुष्टि करने की आवश्यकता होती है। उदाहरण के लिए, अपवादों को पकड़ते समय, आप संभाले जा रहे अपवाद के प्रकार के आधार पर अलग-अलग अपवाद हैंडलिंग प्रोग्रामिंग जंप बना सकते हैं।

उदाहरण के लिए, निम्न कोड यह परीक्षण करने के लिए इंस्टेंसऑफ़ ऑपरेटर का उपयोग करता है कि क्या दिन एक दिनांक ऑब्जेक्ट है। चूँकि theDay वास्तव में एक Date ऑब्जेक्ट है, प्रोग्राम if कथन में निहित कोड को निष्पादित करता है।

वार द डे = नई तारीख(1995, 12, 17); यदि (दिनांक का उदाहरण) (//निष्पादन योग्य कोड)

संचालक वरीयता

प्राथमिकताजब किसी अभिव्यक्ति का मूल्यांकन किया जाता है तो ऑपरेटर उस क्रम को निर्धारित करता है जिसमें उन्हें निष्पादित किया जाता है। आप कोष्ठक के साथ ऑपरेटर प्राथमिकता को प्रभावित कर सकते हैं।

नीचे दी गई तालिका उच्चतम से निम्नतम तक ऑपरेटर प्राथमिकता का वर्णन करती है।

तालिका 3.7 ऑपरेटर प्राथमिकता
ऑपरेटर प्रकार ऑपरेटर्स
वस्तु संपत्ति .
कॉल, ऑब्जेक्ट इन्स्टेन्शियशन () नया
निषेध, वृद्धि ! ~ - +++ -- टाइपऑफ़ वॉयड डिलीट
गुणा, भाग * / %
जोड़, घटाव + -
बिट शिफ्ट << >> >>>
तुलना, प्रविष्टि < <= >>=उदाहरण
समानता == != === !==
बिट-और &
बिट-एक्सक्लूसिव-या ^
बिट-या |
तार्किक-और &&
तार्किक-या ||
सशर्त (टर्नरी) ऑपरेटर ?:
कार्यभार = += -= *= /= %= <<= >>= >>>= &= ^= |=
अल्पविराम ,

अधिक विस्तृत संस्करणइस तालिका में लिंक और शामिल हैं अतिरिक्त जानकारीप्रत्येक ऑपरेटर के लिए, जावास्क्रिप्ट संदर्भ में है।

अभिव्यक्ति

अभिव्यक्तिकोड का कोई वैध ब्लॉक है जो मान लौटाता है।

वैचारिक रूप से, अभिव्यक्तियाँ दो प्रकार की होती हैं: वे जो निर्दिष्ट करती हैं परिवर्तनीय मान, और वे जो किसी मान को निर्दिष्ट किए बिना उसकी गणना करते हैं।

व्यंजक x = 7 पहले प्रकार के व्यंजक का उदाहरण है। यह अभिव्यक्ति प्रयोग करती है ऑपरेटर= वेरिएबल x को मान 7 निर्दिष्ट करने के लिए . व्यंजक स्वयं भी 7 के बराबर है।

कोड 3+4 दूसरे प्रकार की अभिव्यक्ति का उदाहरण है। यह अभिव्यक्ति प्रयोग करती है ऑपरेटरकिसी वेरिएबल में परिणामी परिणाम 7 निर्दिष्ट किए बिना संख्या 3 और 4 को जोड़ने के लिए "+"।

जावास्क्रिप्ट में सभी अभिव्यक्तियाँ निम्नलिखित श्रेणियों में आती हैं:

बुनियादी अभिव्यक्तियाँ

जावास्क्रिप्ट में बुनियादी कीवर्ड और बुनियादी अभिव्यक्तियाँ।

यह ऑपरेटर

वर्तमान ऑब्जेक्ट को संदर्भित करने के लिए इस कीवर्ड का उपयोग करें। सामान्य तौर पर, यह उस कॉल करने योग्य ऑब्जेक्ट की ओर इशारा करता है जो स्वामित्व में है यह विधि. इसे इस प्रकार उपयोग करें:

यह["संपत्तिनाम"] यह.संपत्तिनाम

मान लीजिए कि मान्य फ़ंक्शन किसी ऑब्जेक्ट की वैल्यू प्रॉपर्टी की जांच करता है; वस्तु निर्दिष्ट है, साथ ही इस संपत्ति के मूल्य की ऊपरी और निचली सीमाएं:

फ़ंक्शन वैलिडेट(obj, lowval, hival)( if ((obj.value< lowval) || (obj.value >हिवल)) चेतावनी ("अमान्य मान!"); )

आप हैंडलर पर वैलिडेट फ़ंक्शन को कॉल कर सकते हैं ऑनचेंज इवेंटप्रत्येक प्रपत्र तत्व के लिए, प्रपत्र तत्व को इंगित करने के लिए इसका उपयोग करें, जैसा कि निम्नलिखित उदाहरण में दिखाया गया है:

18 से 99 तक कोई संख्या दर्ज करें:

ग्रुपिंग ऑपरेटर

ग्रुपिंग ऑपरेटर "ब्रैकेट्स" () अभिव्यक्ति मूल्यांकन की प्राथमिकता को नियंत्रित करता है। उदाहरण के लिए, आप क्रम को फिर से परिभाषित कर सकते हैं - "गुणा और भाग, फिर जोड़ और घटाव", ताकि, उदाहरण के लिए, जोड़ गुणा से पहले किया जाए:

वर = 1; वर बी = 2; वर सी = 3; // सामान्य क्रम a + b * c // 7 // हमेशा की तरह चलाएं, इसलिए a + (b * c) // 7 // अब क्रम को उलट दें // गुणन में जोड़ (a + b) * c // 9 // जो a * c + b * c // 9 के बराबर है

सरणियाँ और जनरेटर बनाने के लिए सरलीकृत वाक्यविन्यास

सरलीकृत वाक्यविन्यास एक प्रयोगात्मक जावास्क्रिप्ट सुविधा है जिसे ईसीएमएस्क्रिप्ट के भविष्य के संस्करणों में जोड़ा जा सकता है। वाक्यविन्यास के 2 संस्करण हैं:

सरणियों के लिए सरलीकृत वाक्यविन्यास। ((x का y) y के लिए) जनरेटर के लिए सरलीकृत सिंटैक्स।

सरलीकृत सिंटैक्स कई प्रोग्रामिंग भाषाओं में मौजूद हैं और आपको मौजूदा के आधार पर जल्दी से एक नई सरणी बनाने की अनुमति देते हैं। उदाहरण के लिए:

) मैं*मैं ]; // [1, 4, 9 ] var abc = [ "ए", "बी", "सी" ]; ; // ["ए", "बी", "सी" ]

बाएँ हाथ के भाव

बाईं ओर के मानों को दाईं ओर के मान निर्दिष्ट किए गए हैं।

नया

आप उपयोगकर्ता-परिभाषित प्रकार या अंतर्निहित ऑब्जेक्ट में से किसी एक ऑब्जेक्ट को इंस्टेंट करने के लिए नए ऑपरेटर का उपयोग कर सकते हैं। नए ऑपरेटर का उपयोग इस प्रकार करें:

वार ऑब्जेक्टनाम = नया ऑब्जेक्टटाइप();

बहुत अच्छा

कीवर्ड का उपयोग मूल ऑब्जेक्ट के फ़ंक्शंस को कॉल करने के लिए किया जाता है। उदाहरण के लिए, पैरेंट कंस्ट्रक्टर को कॉल करने के लिए कक्षाओं के साथ यह भी उपयोगी है।

बहुत अच्छा(); // पैरेंट के कंस्ट्रक्टर को कॉल करता है। सुपर.फंक्शनऑनपेरेंट();

एक्सटेंशन ऑपरेटर

स्प्रेड ऑपरेटर एक अभिव्यक्ति को कई तर्कों (फ़ंक्शन कॉल के लिए) या कई तत्वों (सरणी के लिए) के साथ स्थानों पर विस्तार करने की अनुमति देता है।

उदाहरण:आज, यदि आपके पास एक ऐरे है और आप पहले ऐरे के मौजूदा भाग के साथ एक नया ऐरे बनाना चाहते हैं, तो शाब्दिक ऐरे सिंटैक्स अब पर्याप्त नहीं है और आपको पुश, स्प्लिस के संयोजन का उपयोग करके अनिवार्य (वैरिएंटलेस) कोड लिखना होगा। कॉनकैट, आदि लेकिन इस ऑपरेटर के साथ, कोड छोटा हो जाता है:

वर भाग = ["कंधे", "घुटने"]; var गीत = ["सिर", ...भाग, "और", "पैर की उंगलियां"];

ऑपरेटर फ़ंक्शन कॉल के साथ समान रूप से कार्य करता है:

फलन f(x, y, z) ( ) var args = ; एफ(...आर्ग्स);

जावास्क्रिप्ट में अभिव्यक्तियाँसंयोजन हैं ऑपरेंडऔर ऑपरेटरों.

संचालनइन अभिव्यक्तियों को प्राथमिकता मान के अनुसार क्रमिक रूप से निष्पादित किया जाता है (प्राथमिकता मान जितना अधिक होगा, यह उतना ही अधिक होगा)। लौटाया गया परिणाम हमेशा संसाधित किए जा रहे डेटा के प्रकार के समान नहीं होता है। उदाहरण के लिए, तुलनात्मक संचालन में शामिल ऑपरेंड हैं विभिन्न प्रकार के, लेकिन लौटाया गया परिणाम हमेशा बूलियन होगा।

चावल। 1. जावास्क्रिप्ट में अभिव्यक्ति की संरचना

ऑपरेंडजावास्क्रिप्ट स्क्रिप्ट द्वारा संसाधित डेटा है। ऑपरेंड सरल डेटा प्रकार और जटिल दोनों हो सकते हैं, साथ ही अन्य अभिव्यक्तियाँ भी हो सकती हैं।

ऑपरेटर्सभाषा के प्रतीक हैं जो डेटा पर विभिन्न ऑपरेशन करते हैं। ऑपरेटरों को विराम चिह्नों या कीवर्ड का उपयोग करके लिखा जा सकता है।

ऑपरेंड की संख्या के आधार पर, निम्नलिखित प्रकार के ऑपरेटरों को प्रतिष्ठित किया जाता है:
एकल- एक ऑपरेंड ऑपरेशन में शामिल है;
द्विआधारी- दो ऑपरेंड ऑपरेशन में भाग लेते हैं;
त्रिगुट- तीन ऑपरेंड को जोड़ता है।

अभिव्यक्ति का सबसे सरल रूप है शाब्दिक- कुछ ऐसा जो स्वयं का मूल्यांकन करता है, उदाहरण के लिए, संख्या 100, स्ट्रिंग "हैलो वर्ल्ड"। एक चर एक अभिव्यक्ति भी हो सकता है, क्योंकि यह उसे दिए गए मान के अनुसार मूल्यांकन करता है।

जावास्क्रिप्ट में भाव और ऑपरेटर

1. अंकगणित संचालक

अंकगणितीय आपरेटरगणितीय संचालन करने के लिए डिज़ाइन किए गए, वे संख्यात्मक ऑपरेंड (या वेरिएबल जो संख्यात्मक मान संग्रहीत करते हैं) पर काम करते हैं और परिणामस्वरूप एक संख्यात्मक मान लौटाते हैं।

यदि ऑपरेंड में से एक एक स्ट्रिंग है, तो जावास्क्रिप्ट दुभाषिया इसे एक संख्यात्मक प्रकार में बदलने का प्रयास करेगा और फिर उचित ऑपरेशन करेगा। यदि प्रकार रूपांतरण विफल हो जाता है, तो परिणाम NaN (संख्या नहीं) होगा।

तालिका 1. अंकगणितीय ऑपरेटर
संचालक/संचालन विवरण प्राथमिकता
+ जोड़ संख्यात्मक ऑपरेंड जोड़ता है. यदि ऑपरेंड में से एक एक स्ट्रिंग है, तो अभिव्यक्ति का परिणाम एक स्ट्रिंग है। 12
- घटाव पहले से दूसरे ऑपरेंड को घटाता है। 12
- यूनरी माइनस एक धनात्मक संख्या को एक ऋणात्मक संख्या में परिवर्तित करता है और इसके विपरीत। 14
* गुणन दो ऑपरेंड को गुणा करता है। 13
/ विभाजन पहले ऑपरेंड को दूसरे से विभाजित करता है। विभाजन का परिणाम पूर्णांक या फ़्लोटिंग पॉइंट संख्या हो सकता है। 13
% मोडुलो (शेष भाग) पहले ऑपरेंड के दूसरे से पूर्णांक विभाजन के शेष की गणना करता है। पूर्णांक और फ़्लोटिंग पॉइंट संख्या दोनों पर लागू होता है। 13
var x = 5, y = 8, z; जेड = एक्स + वाई // रिटर्न 13 z = x - y; // रिटर्न -3 z = - y; // रिटर्न -8 z = x * y; // रिटर्न 40 z = x / y; // रिटर्न 0.625 z = y % x; //वापसी 3

2. असाइनमेंट ऑपरेटर

असाइनमेंट ऑपरेटरवेरिएबल्स को मान निर्दिष्ट करने के लिए उपयोग किया जाता है। संयुक्त ऑपरेटर आपको प्रारंभिक और बाद के मान को एक चर में संग्रहीत करने की अनुमति देते हैं।

वर ए = 5; // वेरिएबल a var b = "hello" के लिए संख्यात्मक मान 5 निर्दिष्ट करें; // स्ट्रिंग हैलो को वेरिएबल b var m = n = z = 10 में स्टोर करें; // चर m, n, z को संख्यात्मक मान 10 x += 10 निर्दिष्ट करें; // x = x + 10 के बराबर; एक्स -=10; // x = x - 10 के बराबर; एक्स *=10; // x = x * 10 के बराबर; एक्स /= 10; // x = x / 10 के बराबर; x%=10; // x = x % 10 के बराबर;

3. वेतन वृद्धि और वेतन वृद्धि ऑपरेटर

संचालन वृद्धि और कमीयूनरी हैं और ऑपरेंड के मूल्य को एक-एक करके बढ़ाते और घटाते हैं। ऑपरेंड एक वेरिएबल, एक ऐरे तत्व, एक ऑब्जेक्ट प्रॉपर्टी हो सकता है। अक्सर, ऐसे ऑपरेशन का उपयोग लूप में काउंटर को बढ़ाने के लिए किया जाता है।

var x = y = m = n = 5, z, s, k, l; z = ++x * 2; /* गणना के परिणामस्वरूप मान z = 12, x = 6, यानी वापस आ जाएगा। x मान को पहले 1 से बढ़ाया जाता है, और फिर गुणन ऑपरेशन किया जाता है */ s = y++ * 2; /* गणना के परिणामस्वरूप मान s = 10, y = 6, यानी वापस आ जाएगा। सबसे पहले, गुणन ऑपरेशन किया जाता है, और फिर 1 से बढ़ा हुआ मान चर y */ k = --m * 2 में संग्रहीत किया जाता है; // मान लौटाएगा k = 8, m = 4 l = n-- * 2; // मान लौटाएगा l = 10, n = 4

4. तुलना संचालक

तुलना संचालकऑपरेंड के मिलान के लिए उपयोग किया जाता है, अभिव्यक्ति का परिणाम दो मानों में से एक हो सकता है - सत्य या गलत। ऑपरेंड न केवल संख्याएँ हो सकते हैं, बल्कि स्ट्रिंग, बूलियन और ऑब्जेक्ट भी हो सकते हैं। हालाँकि, तुलना केवल संख्याओं और स्ट्रिंग्स पर ही की जा सकती है, इसलिए जो ऑपरेंड संख्याएँ या स्ट्रिंग नहीं हैं उन्हें परिवर्तित कर दिया जाता है।

यदि दोनों ऑपरेंड को संख्याओं या स्ट्रिंग्स में सफलतापूर्वक परिवर्तित नहीं किया जा सकता है, तो ऑपरेटर हमेशा गलत लौटाते हैं।

यदि दोनों ऑपरेंड स्ट्रिंग/संख्या हैं, या उन्हें स्ट्रिंग/संख्या में परिवर्तित किया जा सकता है, तो उनकी तुलना स्ट्रिंग/संख्या के रूप में की जाएगी।

यदि एक ऑपरेंड एक स्ट्रिंग है/एक स्ट्रिंग में परिवर्तित हो जाता है और दूसरा एक संख्या है/एक संख्या में परिवर्तित हो जाता है, तो ऑपरेटर स्ट्रिंग को एक संख्या में बदलने और एक संख्यात्मक तुलना करने का प्रयास करेगा। यदि स्ट्रिंग एक संख्या नहीं है, तो इसे NaN में बदल दिया जाता है और तुलना का मूल्यांकन गलत पर किया जाता है।

कार्यक्रमों में शाखाओं को व्यवस्थित करते समय अक्सर तुलना संचालन का उपयोग किया जाता है।

तालिका 4. तुलना ऑपरेटर
संचालक/संचालन विवरण प्राथमिकता
==समानता एक मैच के लिए दो मानों का परीक्षण करता है, जिससे प्रकार रूपांतरण की अनुमति मिलती है। यदि ऑपरेंड समान हैं तो सत्य लौटाता है और यदि वे भिन्न हैं तो गलत लौटाता है। 9
!=असमानता यदि ऑपरेंड समान नहीं हैं तो सत्य लौटाता है 9
===पहचान सख्त मिलान परिभाषा का उपयोग करके "पहचान" के लिए दो ऑपरेंड का परीक्षण करता है। यदि ऑपरेंड प्रकार रूपांतरण के बिना समान हैं तो सत्य लौटाता है। 9
!==समान नहीं पहचान जांच करता है. यदि ऑपरेंड प्रकार रूपांतरण के बिना समान नहीं हैं तो सत्य लौटाता है। 9
> अधिक यदि पहला ऑपरेंड दूसरे से बड़ा है तो सत्य लौटाता है, अन्यथा गलत लौटाता है। 10
>= इससे बड़ा या बराबर यदि पहला ऑपरेंड दूसरे से कम नहीं है तो सत्य लौटाता है, अन्यथा गलत लौटाता है। 10
यदि पहला ऑपरेंड दूसरे से कम है तो सत्य लौटाता है, अन्यथा गलत लौटाता है। 10
यदि पहला ऑपरेंड दूसरे से बड़ा नहीं है तो सत्य लौटाता है, अन्यथा गलत लौटाता है। 10
5 == "5"; // सत्य 5 लौटाता है != -5.0; // सत्य लौटाता है 5 === "5"; // गलत रिटर्न देता है === गलत; // सत्य 1 लौटाता है !== सत्य; // सत्य 1 लौटाता है != सत्य; // गलत लौटेगा क्योंकि सत्य 1 3 > -3 में परिवर्तित हो गया है; // सत्य लौटाता है 3 >= "4"; //झूठा लौटाएगा

5. तार्किक संचालक

लॉजिकल ऑपरेटर्सआपको वापस आने वाली स्थितियों को संयोजित करने की अनुमति देता है बूलियन मान. इफ़ स्टेटमेंट में सबसे अधिक उपयोग किया जाता है।

(2 < 3) && (3===3); // вернет true, так как выражения в обеих скобках дают true (x < 10 && x >0); // यदि x 0 और 10 के बीच है तो सत्य वापस आ जाएगा !गलत; // सत्य लौटाता है

6. बिटवाइज़ ऑपरेटर

बिटवाइज़ ऑपरेटर्सशून्य और एक के 32-बिट अनुक्रम के रूप में ऑपरेंड पर काम करें और दशमलव नोटेशन में लिखे गए ऑपरेशन के परिणाम को इंगित करने वाला एक संख्यात्मक मान लौटाएं। पूर्णांकों को ऑपरेंड माना जाता है, ऑपरेंड के भिन्नात्मक भाग को छोड़ दिया जाता है। बिटवाइज़ ऑपरेशंस का उपयोग किया जा सकता है, उदाहरण के लिए, डेटा एन्क्रिप्ट करते समय, फ़्लैग के साथ काम करना और एक्सेस अधिकारों का परिसीमन करना।

तालिका 6. बिटवाइज़ ऑपरेटर
संचालक/संचालन विवरण प्राथमिकता
और बिटवाइज़ और यदि दोनों बिट 1 हैं, तो परिणामी बिट 1 होगा। अन्यथा, परिणाम 0 है। 8
| बिटवाइज़ या यदि किसी ऑपरेंड में स्थिति पर 1 है, तो परिणाम में उस स्थिति पर भी 1 होगा, अन्यथा उस स्थिति पर परिणाम 0 होगा। 6
^ एक्सओआर यदि किसी स्थिति में एक, और केवल एक मान में 1 है, तो परिणाम में उस स्थिति में 1 होगा, अन्यथा उस स्थिति में परिणाम 0 होगा। 7
~ इनकार अभिव्यक्ति मान के द्विआधारी प्रतिनिधित्व पर एक बिटवाइज़ नकार ऑपरेशन किया जाता है। मूल अभिव्यक्ति में 1 वाली किसी भी स्थिति को 0 से बदल दिया जाता है। मूल अभिव्यक्ति में 0 वाली कोई भी स्थिति 0 हो जाती है। सकारात्मक संख्या 0 से प्रारंभ करें, नकारात्मक वाले -1 से प्रारंभ करें, इसलिए ~ n == -(n+1) । 14
ऑपरेटर बिट स्थितियों की संख्या के आधार पर पहले ऑपरेंड के बिट्स को बाईं ओर स्थानांतरित करता है दूसरे द्वारा स्थापितसंकार्य. शून्य का उपयोग दाहिनी ओर के पदों को भरने के लिए किया जाता है। बाएँ ऑपरेंड के समान प्रकार का परिणाम लौटाएँ। 11
>> बिट शिफ्ट दाएँ ऑपरेटर दूसरे ऑपरेंड द्वारा निर्धारित बिट स्थितियों की संख्या के अनुसार पहले ऑपरेंड के बिट्स को दाईं ओर स्थानांतरित करता है। जो अंक सीमा से बाहर हैं उन्हें हटा दिया जाता है। परिणाम का चिह्न बनाए रखने के लिए सबसे महत्वपूर्ण बिट (32वां) को अपरिवर्तित छोड़ दिया गया है। यदि पहला ऑपरेंड सकारात्मक है, तो परिणाम के उच्च बिट्स शून्य से भरे हुए हैं; यदि पहला ऑपरेंड नकारात्मक है, तो परिणाम के उच्च बिट्स को बिट्स से भर दिया जाता है। किसी मान को एक स्थान से दाईं ओर स्थानांतरित करना 2 से विभाजित करने के बराबर है (शेष को हटा दिया गया है), और दो स्थानों से दाईं ओर स्थानांतरित करना 4 से विभाजित करने के बराबर है, इत्यादि। 11
>>> बिना साइन के बिटवाइज राइट शिफ्ट ऑपरेटर दूसरे ऑपरेंड द्वारा निर्धारित बिट स्थितियों की संख्या के अनुसार पहले ऑपरेंड के बिट्स को दाईं ओर स्थानांतरित करता है। पहले ऑपरेंड के चिह्न की परवाह किए बिना शून्य को बाईं ओर जोड़ा जाता है। जो अंक सीमा से बाहर हैं उन्हें हटा दिया जाता है। 11
var x = 9, y = 5, z = 2, s = -5, परिणाम; // 9 1001 के बराबर है, 5 0101 के बराबर है परिणाम = x & y; // रिटर्न 1 (0001 के बराबर) परिणाम = x | य; // रिटर्न 13 (1101 के बराबर) परिणाम = x ^ y; // 12 (1100 के बराबर) परिणाम लौटाएगा = ~ y; // रिटर्न -6 (1100 के बराबर) परिणाम = x<< y; // вернет 288 (эквивалентно 100100000) result = x >>z; // रिटर्न 2 (10 के बराबर) परिणाम = s >>> z; // रिटर्न 1073741822 (1111111111111111111111111110 के बराबर)

7. स्ट्रिंग ऑपरेटर्स

ऐसे कई ऑपरेटर हैं जो एक विशेष तरीके से स्ट्रिंग पर काम करते हैं।

"1" + "10"; // "110" "1" + 10 लौटाएगा; // रिटर्न "110" 2 + 5 + "रंगीन पेंसिल"; // रिटर्न "7 रंगीन पेंसिलें" "रंगीन पेंसिलें" + 2 + 5; // रिटर्न "रंगीन पेंसिलें 25" "1" > "10"; // गलत "10" लौटाएगा<= 10; // вернет true "СССР" == "ссср"; // вернет false x = "micro"; x+= "soft"; // вернет "microsoft"

8. विशेष संचालक

तालिका 8. विशेष संचालक
संचालक/संचालन विवरण प्राथमिकता
. किसी संपत्ति तक पहुँचना किसी वस्तु की संपत्ति तक पहुँचता है। 15
, एकाधिक गणना एक ही पंक्ति में लिखे अनेक स्वतंत्र भावों का मूल्यांकन करता है। 1
सारणी अनुक्रमण सरणी तत्वों या ऑब्जेक्ट गुणों तक पहुँचता है। 15
() फंक्शन कॉल, ग्रुपिंग समूह संचालन या किसी फ़ंक्शन को कॉल करना। 15
टाइपोफ़ डेटा प्रकार परिभाषा यूनरी ऑपरेटर, ऑपरेंड का डेटा प्रकार लौटाता है। 14
इंस्टेंसऑफ़ ऑब्जेक्ट प्रकार की जाँच करें ऑपरेटर जाँचता है कि क्या कोई वस्तु किसी विशेष वर्ग का उदाहरण है। बाएं ऑपरेंड में एक ऑब्जेक्ट होना चाहिए, दाएं ऑपरेंड में ऑब्जेक्ट क्लास का नाम होना चाहिए। यदि बाईं ओर निर्दिष्ट वस्तु दाईं ओर निर्दिष्ट वर्ग का एक उदाहरण है तो परिणाम सत्य होगा, अन्यथा गलत होगा। 10
यह जाँचने में कि क्या कोई संपत्ति मौजूद है बायां ऑपरेंड एक स्ट्रिंग होना चाहिए, और दायां ऑपरेंड एक सरणी या ऑब्जेक्ट होना चाहिए। यदि बायाँ मान किसी वस्तु का गुण है, तो परिणाम सत्य होगा। 10
नई वस्तु निर्माण ऑपरेटर अपरिभाषित गुणों के साथ एक नई वस्तु बनाता है, फिर इसे आरंभ करने के लिए कंस्ट्रक्टर फ़ंक्शन को कॉल करता है (पास पैरामीटर)। इसका उपयोग सरणी बनाने के लिए भी किया जा सकता है। 1
मिटाना ऑपरेटर आपको किसी ऑब्जेक्ट से किसी प्रॉपर्टी या किसी ऐरे से किसी तत्व को हटाने की अनुमति देता है। यदि विलोपन सफल रहा तो सत्य लौटाता है, अन्यथा गलत लौटाता है। जब किसी सरणी तत्व को हटा दिया जाता है, तो उसकी लंबाई नहीं बदलती है। 14
शून्य, बिना किसी रिटर्न वैल्यू वाले एक्सप्रेशन को परिभाषित करना यूनरी ऑपरेटर, ऑपरेंड के मूल्य को त्याग देता है और कम मूल्य पर लौटाता है। 14
?: सशर्त अभिव्यक्ति संचालन टर्नरी ऑपरेटर आपको सरल शाखाकरण व्यवस्थित करने की अनुमति देता है। अभिव्यक्ति में तीन ऑपरेंड शामिल हैं, पहला एक बूलियन मान होना चाहिए या इसे परिवर्तित किया जाना चाहिए, और दूसरा और तीसरा कोई भी मान होना चाहिए। यदि पहला ऑपरेंड सत्य है, तो सशर्त अभिव्यक्ति दूसरे ऑपरेंड का मान ले लेगी; यदि असत्य है - तो तीसरा। 3
दस्तावेज़.लिखें('हैलो वर्ल्ड'); // स्ट्रिंग प्रदर्शित करता है हैलो वर्ल्ड i = 0, j = 1; // चर function1(10, 5) में मान संग्रहीत करें; // फ़ंक्शन कॉल फ़ंक्शन1 पैरामीटर 10 और 5 के साथ var वर्ष = ; // तत्वों टाइपोफ़ (ए: 1) के साथ एक सरणी बनाता है; // "ऑब्जेक्ट" लौटाता है var d = नई तिथि(); // Date() कंस्ट्रक्टर d इंस्टेंसऑफ़ Date का उपयोग करके एक नया ऑब्जेक्ट बनाएं; // सच वर मायकार लौटाता है = (बनाएँ: "होंडा", मॉडल: "एकॉर्ड", वर्ष: 2005); मायकार में "बनाओ"; // सत्य लौटाता है var obj = नया ऑब्जेक्ट(); // एक खाली वस्तु बनाता है var food = ["दूध", "रोटी", "मांस", "जैतून का तेल", "पनीर"]; भोजन हटाएं; // सरणी भोजन x > 10 से चौथा तत्व हटाता है? x*2:x/2; // यदि x > 10 है तो x * 2 लौटाता है, अन्यथा x/2 देता है

9. जावास्क्रिप्ट में टिप्पणियाँ

एकल-पंक्ति टिप्पणी: टिप्पणी पाठ के पहले // अक्षर लगाएं।

सबसे पहले, जावास्क्रिप्ट में अभिव्यक्तियों के बारे में संक्षेप में।

जावास्क्रिप्ट अभिव्यक्तियाँ

जावास्क्रिप्ट में कथन और अभिव्यक्तियाँ हैं।

निर्देश मान वापस नहीं करते.

अभिव्यक्ति हमेशाकुछ मान लौटाएँ. जब दुभाषिया किसी अभिव्यक्ति को देखता है, तो वह उसके मूल्य का मूल्यांकन करता है और अभिव्यक्ति को उसके मूल्य से बदल देता है।

अभिव्यक्तियाँ या तो सरल होती हैं या यौगिक। सरल भावों में अन्य भाव सम्मिलित नहीं होते।

सरल अभिव्यक्तियों में शामिल हैं:

  1. पहचानकर्ता: someVar (परिवर्तनीय नाम);
  2. शाब्दिक: "स्ट्रिंग" या 675 (संख्या, या संख्यात्मक शाब्दिक);
  3. कुछ कीवर्ड इस प्रकार हैं;

जब पार्सर को एक पहचानकर्ता का सामना करना पड़ता है, तो उसे पहले इसके मूल्य की गणना करने की आवश्यकता होती है, यानी, उदाहरण के लिए, एक चर के नाम को उसके मूल्य से बदलें।

शाब्दिक का मान वही होगा जो स्क्रिप्ट कोड में लिखा गया है।

ऑपरेटर्स और जटिल जावास्क्रिप्ट अभिव्यक्तियाँ

ऑपरेटरों का उपयोग कई सरल अभिव्यक्तियों को एक जटिल अभिव्यक्ति में संयोजित करने के लिए किया जाता है।

ऑपरेटर हैं:

  • यूनरी (एक ऑपरेंड)।
  • बाइनरी (दो ऑपरेंड)।
  • टर्नरी ऑपरेटर? जावास्क्रिप्ट में (तीन ऑपरेंड, केवल एक टर्नरी ऑपरेटर है)।

ऑपरेंड एक सरल अभिव्यक्ति है जिसमें एक ऑपरेटर लागू होता है।

उदाहरण के लिए, अंकगणितीय जोड़ ऑपरेटर "+" एक बाइनरी ऑपरेटर है। यह बाएँ और दाएँ ऑपरेंड का योग करता है और योग लौटाता है।

वर्डिजिट = 4 + 7;

वैसे, असाइनमेंट असाइनमेंट ऑपरेटर "=" का उपयोग करके किया जाता है। यह ऑपरेटर दाएं ऑपरेंड के मूल्य का मूल्यांकन करता है और इसे बाएं ऑपरेंड को असाइन करता है।

जावास्क्रिप्ट में एक यूनरी प्लस है, इसमें केवल एक ऑपरेंड है। यूनरी प्लस एक अंकगणितीय ऑपरेटर नहीं है, यह ऑपरेंड को एक संख्या में परिवर्तित करता है।

वार मायवार = "7"; document.write(typeof(myVar) + "
"); // स्ट्रिंग myVar = +myVar प्रिंट करता है; document.write(typeof(myVar) + "
"); // दस्तावेज़ में नंबर प्रिंट करें

सबसे पहले, myVar में स्ट्रिंग "7" थी, जो स्ट्रिंग प्रकार (स्ट्रिंग) का शाब्दिक अर्थ है, संख्यात्मक (संख्या) नहीं। यूनरी प्लस ऑपरेटर की मदद से, हमने स्ट्रिंग अक्षरशः को संख्यात्मक में बदल दिया है।

अंकगणितीय आपरेशनस

अंकगणितीय संक्रियाएँ प्रसिद्ध गणितीय संक्रियाएँ हैं।

शायद % (शेष) ऑपरेटर को स्पष्टीकरण की आवश्यकता है। 9, 4 के शेषफल के साथ 5 से विभाज्य है, और यह वह शेषफल है जिसे यह ऑपरेटर लौटाता है। इसे मॉड्यूलो लेना भी कहा जाता है. पूर्णांक का उपयोग करते समय, इस ऑपरेटर का परिणाम भी पूर्णांक होगा। फ़्लोटिंग पॉइंट नंबरों पर काम करते समय, परिणाम एक फ़्लोटिंग पॉइंट नंबर होगा।

5.5 % 2.2 = 1.1

अंकगणितीय परिचालन करते समय, यह याद रखना चाहिए कि यदि उन्हें गलत तरीके से निष्पादित किया जाता है, तो वे परिणाम दे सकते हैं:

  • NaN (संख्या नहीं) - कोई संख्या नहीं।
  • अनंत - अनंत।

यहां बताया गया है कि शून्य से भाग देने पर क्या परिणाम मिलता है:

वर मायवार = 0/0; document.write ("परिवर्तनीय मान:" + myVar + ", इसका प्रकार: " + typeof(myVar) + "
");

तुलना संचालन

तुलना ऑपरेटरों का उपयोग भावों के मिलान के लिए किया जाता है। एक सशर्त ऑपरेटर के साथ एक अभिव्यक्ति एक बूलियन मान लौटाती है - सही या गलत (सही / गलत)।

तुलना संचालन स्ट्रिंग के साथ भी किया जा सकता है, इस पर दूसरे पाठ में चर्चा की जाएगी। सही परिणाम के लिए एकमात्र शर्त एक ही प्रकार के डेटा का मिलान करना है। अन्यथा, जावास्क्रिप्ट डेटा को एक प्रकार से दूसरे प्रकार में बदलने का प्रयास करेगा, और यह हमेशा संभव नहीं है। त्रुटियों से बचने के लिए, केवल एक ही प्रकार के डेटा की तुलना करें।

असाइनमेंट संचालन

असाइनमेंट ऑपरेटर का सबसे स्पष्ट उदाहरण सरल असाइनमेंट (=) है। इस ऑपरेटर (=) का उपयोग किसी वेरिएबल को मान निर्दिष्ट करने के लिए किया जाता है।

लेकिन ऐसे कई असाइनमेंट ऑपरेशन हैं जो शॉर्टहैंड हैं।

बूलियन ऑपरेशन

बूलियन ऑपरेशंस का उपयोग अक्सर JS में if else निर्माण के साथ किया जाता है। इस डिज़ाइन के उदाहरणों पर ही उनके काम का प्रदर्शन किया जाएगा। लेकिन सबसे पहले, तार्किक ऑपरेटरों की एक सूची।

अब सरल उदाहरण:

यदि (सही और सत्य) document.write("यह काम करता है!
"); यदि (सही || गलत) document.write("यह काम करता है!
"); if (!false) document.write("यह काम करता है!
");

आइए इन उदाहरणों पर एक नजर डालें:

यदि दोनों ऑपरेंड सत्य हैं तो तार्किक AND ऑपरेटर (&&) सत्य लौटाएगा।

यदि कम से कम एक ऑपरेंड सत्य है तो तार्किक OR ऑपरेटर (||) सत्य लौटाएगा।

तार्किक NOT ऑपरेटर (!) एक ऑपरेंड लेता है और सही/गलत मान को उलट देता है।

यूनरी ऑपरेटर्स

यूनरी ऑपरेटर एक ऑपरेंड वाले ऑपरेटर होते हैं। इनमें से कुछ ऑपरेटर यहां दिए गए हैं:

  • ++ - 1 की वृद्धि (वृद्धि)। यह उपसर्ग और उपसर्ग हो सकता है, इसके बारे में नीचे और अधिक बताया गया है।
  • -- - 1 से कमी (कमी)। यह उपसर्ग और उपसर्ग हो सकता है, इसके बारे में नीचे और अधिक बताया गया है।
  • + - यूनरी प्लस।
  • - - यूनरी माइनस।

यूनरी माइनस

यूनरी माइनस अभिव्यक्ति के चिह्न को उलट देता है। उदाहरण के लिए, जब आप किसी प्रोग्राम में -100 लिखते हैं, तो आप बस संख्यात्मक शाब्दिक 100 पर एक यूनरी माइनस लागू करते हैं।

आपको यह समझने की ज़रूरत है कि यूनरी माइनस कैसे काम करता है - यह विपरीत चिह्न के साथ ऑपरेंड का मान लौटाता है। यूनरी माइनस का सही तरीके से उपयोग कैसे करें इसका एक उदाहरण यहां दिया गया है:

वर मायवार = -100; document.write(-myVar + " - यूनरी माइनस ने काम किया, लेकिन वेरिएबल भी = " + myVar + "।
"); myVar = -myVar; document.write("अब वेरिएबल = "+ myVar +"।
");

यहां डबल यूनरी माइनस का एक निरर्थक उदाहरण दिया गया है। मुझे लगता है कि यह शैक्षिक उद्देश्यों के लिए उपयोगी होगा:

वर मायवार = -100; document.write(--myVar + " एक वेतन वृद्धि है, डबल यूनरी माइनस नहीं।
"); document.write("अब वेरिएबल = "+ myVar +"।
"); document.write(-(-myVar) + " जो कि यूनरी माइनस का दोहरा उपयोग है।
");

यूनरी प्लस

यूनरी प्लस कोई गणितीय कार्य नहीं करता है। यह शाब्दिक को संख्यात्मक प्रकार में बदल देता है।

वार मायवार = "78687"; document.write(typeof(myVar) + ".
"); myVar = +myVar; document.write(typeof(myVar) +"।
");

वृद्धि और कमी

प्रोग्रामिंग में अक्सर किसी वेरिएबल के मान को एक-एक करके बढ़ाना या घटाना आवश्यक होता है। इसके लिए यूनरी ऑपरेटर हैं:

  • ++ - 1 की वृद्धि (वृद्धि)।
  • -- - 1 से कमी (कमी)।

यूनरी प्लस और माइनस के विपरीत, इंक्रीमेंट और डिक्रीमेंट कॉल करने पर वेरिएबल का मान बदल देते हैं।

वर मायवार = 10; document.write(++myVar + ".
"); document.write(myVar + ".
");

वेतन वृद्धि (--) इसी तरह काम करती है।

अब इन ऑपरेटरों के उपसर्ग और उपसर्ग उपयोग पर विचार करें।

  • ++myVar - उपसर्ग में 1 की वृद्धि।
  • myVar++ - पोस्टफ़िक्स में 1 की वृद्धि।

अंतर यह है:

  • इन ऑपरेटरों का उपसर्ग उपयोग पहले यूनरी ऑपरेटर के मूल्य का मूल्यांकन करता है और फिर अभिव्यक्ति में परिणाम का उपयोग करता है।
  • पोस्टफ़िक्स उपयोग पहले अभिव्यक्ति का मूल्यांकन करता है और फिर यूनरी ऑपरेटर (++ या -) को निष्पादित करता है।

एक सरल उदाहरण आपको इसे समझने में मदद करेगा:

वर मायवार = 10; document.write((++myVar + 5) + ".

"); var myVar = 10; document.write((myVar++ + 5) + "।
"); document.write("वेरिएबल = " + myVar + ".
");

वृद्धि और वेतन वृद्धि का उपयोग केवल चर के साथ किया जा सकता है, उन्हें संख्यात्मक शाब्दिक पर लागू नहीं किया जा सकता है। सीधे शब्दों में कहें तो ++7 कोड ने स्क्रिप्ट में एक त्रुटि दी।

अन्य ऑपरेटर

जावास्क्रिप्ट में अन्य ऑपरेटर हैं:

  • टर्नरी (तीन ऑपरेंड के साथ) ऑपरेटर

वर ए = 10; varb = (ए>1) ? 100:200; चेतावनी(बी);

यदि शर्त ए>1सत्य, फिर चर बीएक मान निर्दिष्ट करें 100 , अन्यथा वेरिएबल b को मान असाइन किया गया है 200 .

टास्क जेएस 3_4.कोड को लागू करें: 3 स्थानीय चर का उपयोग करके घोषित किया गया है कीवर्डवर. अधिकतम वैरिएबल के लिए निम्नलिखित टर्नरी ऑपरेटर का मान निर्दिष्ट करना आवश्यक है: यदि a, b से अधिक है, तो a लौटाएं, अन्यथा b लौटाएं।
सांकेतिक टुकड़ा:

यदि (ए*बी< 6) { result = "Мало"; } else { result = "Много"; }


आत्म-नियंत्रण के लिए प्रश्न:

  1. टर्नरी ऑपरेटर का सिंटैक्स क्या है?
  2. एक टर्नरी ऑपरेटर के पास कितने तर्क होते हैं?

जावास्क्रिप्ट में स्विच स्टेटमेंट - स्विच

जावास्क्रिप्ट स्विच स्टेटमेंट एकाधिक मानों के लिए एक चर का परीक्षण करने का कार्य करता है:

वाक्य - विन्यास:

स्विच (वेरिएबल या एक्सप्रेशन) (केस विकल्प1: //..स्टेटमेंट ब्लॉक.. ब्रेक केस विकल्प2: //..स्टेटमेंट ब्लॉक.. ब्रेक डिफॉल्ट: //..स्टेटमेंट ब्लॉक.. )

एक चर या अभिव्यक्ति का मान जाँचा जाता है: प्रत्येक में मामलामानों में से एक की जाँच की जाती है, उपयुक्त मान के मामले में, दिए गए कथन के अनुरूप कथनों का एक या दूसरा ब्लॉक निष्पादित किया जाता है मामला.

सर्विस शब्द डिफॉल्ट से शुरू होने वाले ब्लॉक को छोड़ा जा सकता है। यदि सूचीबद्ध मानों में से कोई भी नहीं है तो ब्लॉक स्टेटमेंट निष्पादित किए जाएंगे मामलायोग्य नहीं।

महत्वपूर्ण:वेरिएबल के प्रत्येक मान के बाद ब्रेक स्टेटमेंट की आवश्यकता होती है (प्रत्येक के बाद)। मामला); यदि इसका उपयोग नहीं किया जाता है, तो नीचे दिए गए सभी कथन प्रदर्शित किए जाएंगे

ऑपरेटर से तुलना करें अगर:

वर ए = 2; स्विच(ए) ( केस 0: // यदि (ए === 0) केस 1: // यदि (ए === 0) अलर्ट ("शून्य या एक"); // फिर आउटपुट... ब्रेक; केस 2: // यदि (ए === 2) चेतावनी ("दो"); // फिर आउटपुट... ब्रेक; डिफ़ॉल्ट: // अन्यथा चेतावनी ("कई"); // अन्यथा आउटपुट...)

अनेक विकल्पों का समूह कैसे बनाएं?

समान कथनों को निष्पादित करने के लिए, कई को समूहीकृत करना संभव है मामला. जैसा कि ऊपर दिए गए उदाहरण में है:

केस 0: केस 1: अलर्ट ("शून्य या एक"); तोड़ना; ...

जब a = 0 और a = 1, एक ही कथन निष्पादित किया जाता है: चेतावनी ("शून्य या एक");

उदाहरण 4:उपयोगकर्ता से एक रंग दर्ज करने के लिए कहें. अनुवाद भेजें अंग्रेजी भाषारंग दर्ज किया. रंग के लिए "नीला"और "नीला"समान मूल्य उत्पन्न करें.


✍ समाधान:
  • HTML स्केलेटन और टैग के साथ एक वेब पेज बनाएं लिखी हुई कहानी.
  • वेरिएबल को आरंभ करें रंग
  • var रंग = संकेत ("कौन सा रंग?");

    var रंग = संकेत ("कौन सा रंग?");

  • एक निर्माण के साथ एक चर के मूल्य की जाँच करें बदलना, प्रत्येक मान के लिए संबंधित अनुवाद आउटपुट:
  • स्विच (रंग) (मामला "लाल": चेतावनी ("लाल"); टूटना; मामला "हरा": चेतावनी ("हरा"); टूटना; // ...

    यदि चर रंगका मान "लाल" है, फिर आउटपुट मोडल विंडोअनुवाद - "लाल" और निर्माण से बाहर निकलें (ब्रेक;)। यदि चर रंगका मान "हरा" है, फिर मोडल विंडो में अनुवाद - "हरा" प्रदर्शित करें और निर्माण से बाहर निकलें (ब्रेक;)।

  • फूलों के लिए "नीला"और "नीला"समूहीकरण करें:
  • // ... मामला "नीला": मामला "नीला": चेतावनी ("नीला"); तोड़ना; // ...

    यदि चर रंगइसका मान "नीला" या परिवर्तनशील है रंगका मान "नीला" है, फिर मोडल विंडो में अनुवाद - "नीला" प्रदर्शित करें और निर्माण से बाहर निकलें (ब्रेक;)।

  • उन रंगों के लिए आउटपुट व्यवस्थित करें जो प्रोग्राम द्वारा प्रदान नहीं किए गए हैं:
  • //...डिफ़ॉल्ट: चेतावनी( "हमारे पास इस रंग की जानकारी नहीं है") ) // अंत स्विच

    // ... डिफ़ॉल्ट: चेतावनी ("हमें इस रंग के बारे में कोई जानकारी नहीं है") ) // स्विच का अंत

  • ब्राउज़र में स्क्रिप्ट का परीक्षण करें.

टास्क जेएस 3_6.निम्नलिखित कोड स्निपेट में त्रुटियाँ ढूंढें और ठीक करें:

14 15 16 17 वर्नंबर = प्रॉम्प्ट( "संख्या 1 या 2 दर्ज करें:") ; स्विच (संख्या) (मामला "1" ( दस्तावेज़.लिखें ("एक") ; ) ; तोड़ना ; मामला "2" ( दस्तावेज़.लिखें ("दो" ); ) ; तोड़ना ; डिफ़ॉल्ट ( दस्तावेज़.लिखें ( "आपने 1 और 2 के अलावा कोई अन्य मान दर्ज किया है") ; } ; }

var नंबर = प्रॉम्प्ट ("नंबर 1 या 2 दर्ज करें:"); स्विच (संख्या) (केस "1" ( डॉक्यूमेंट.राइट("एक"); ); ब्रेक; केस "2" ( डॉक्यूमेंट.राइट("दो"); ); ब्रेक; डिफॉल्ट ( डॉक्यूमेंट.राइट("आपने प्रवेश किया 1 और 2 के अलावा अन्य मूल्य"); ); )


टास्क जेएस 3_7.निम्नलिखित कोड निष्पादित होने पर स्क्रीन पर क्या प्रदर्शित होगा?

1 2 3 4 5 6 7 8 9 10 11 12 13 वर मान = "2" ; स्विच (मान) ( केस "1" : केस "2" : केस "3" : डॉक्यूमेंट.राइट ("हैलो" ); ब्रेक ; केस "4" : केस "5" : डॉक्यूमेंट.राइट ("वर्ल्ड" ) ; डिफ़ॉल्ट: document.write("त्रुटि" ); )

वर मान = "2"; स्विच (मान) (केस "1": केस "2": केस "3": डॉक्यूमेंट.राइट("हैलो"); ब्रेक; केस "4": केस "5": डॉक्यूमेंट.राइट("वर्ल्ड" ); डिफ़ॉल्ट: document.write("त्रुटि"); )


कार्य Js 3_8.उपयोगकर्ता से एक संख्या पूछें - शाखा पर कौवों की संख्या। दर्ज संख्या (10 से अधिक नहीं) के आधार पर, एक संदेश प्रदर्शित करें: - एक शाखा पर बैठें 1 कौवा- एक शाखा पर बैठे 4 कौवे- एक शाखा पर बैठे 10 कौवे

  1. दर्ज संख्या के आधार पर, शब्द का अंत बदल जाता है। "कौआ".
  2. जांचने के लिए जावास्क्रिप्ट स्विच स्टेटमेंट का उपयोग करें।
  3. बचाना यह पृष्ठपरिणाम फ़ोल्डर में (यह आगे के काम के लिए उपयोगी होगा)।


आत्म-नियंत्रण के लिए प्रश्न:

  1. किस मामले में यह उचित है सशर्त बयाननिर्माण का उपयोग करें बदलना?
  2. स्टेटमेंट में डिफ़ॉल्ट ब्लॉक का उद्देश्य क्या है? बदलना?
  3. क्या निर्माण में ब्रेक स्टेटमेंट का उपयोग करना आवश्यक है? बदलना?
  4. एक ऑपरेटर में एकाधिक मूल्य विकल्पों के लिए समूहीकरण कैसे किया जाता है बदलना?

जावास्क्रिप्ट में लूप स्टेटमेंट - के लिए

वाक्य - विन्यास:

for(प्रारंभिक काउंटर वैल्यू; स्थिति; काउंटर वेतन वृद्धि) ( //..स्टेटमेंट ब्लॉक.. )

महत्वपूर्ण:लूप के लिए जावास्क्रिप्ट का उपयोग तब किया जाता है जब यह पहले से ज्ञात हो कि चक्रीय क्रियाओं को कितनी बार दोहराया जाना चाहिए (लूप में कितने पुनरावृत्तियाँ हैं)

  • एक असाइनमेंट एक्सप्रेशन का उपयोग पुनरावृत्ति काउंटर के प्रारंभिक मान के रूप में किया जाता है: उदाहरण के लिए, i=0 - लूप काउंटर शून्य से शुरू होता है:
  • for(var i = 0; शर्त; काउंटर इंक्रीमेंट) ( //.. स्टेटमेंट ब्लॉक.. )

  • काउंटर वेतन वृद्धि के रूप में, वह कदम जिसके साथ काउंटर बढ़ना चाहिए इंगित किया गया है: उदाहरण के लिए, इंगित करता है कि लूप के प्रत्येक पुनरावृत्ति के साथ इसकी वृद्धि होगी 1 :
  • for(var i = 0; शर्त; i++) ( //..स्टेटमेंट ब्लॉक.. )

  • लूप स्थिति काउंटर का अंतिम मान है: i10, उदाहरण के लिए, लूप को रोकता है:
  • for(var i = 0; i<10; i++) { //..блок операторов.. }

जावास्क्रिप्ट में फॉर लूप का उपयोग करने के एक उदाहरण पर विचार करें:

उदाहरण 5:संख्याओं का एक क्रम आउटपुट करें 0 1 2 3 ... 9 , प्रत्येक अंक - एक नई पंक्ति से। 0 1 2 ... 8 9


✍ समाधान:
  • संख्याओं का अनुक्रम प्रदर्शित करने के लिए, हम लूप काउंटर का उपयोग करेंगे, जिससे इसका मान बदलना चाहिए 0 पहले 9 अनुक्रम के अनुसार.
  • अभीतक के लिए तो लूप काउंटर का प्रारंभिक मानमान को इस पर सेट करें 0 ; जैसा चक्र की स्थितिअंतिम मान सेट करें - ii=9; काउंटर चरण के बराबर होना चाहिए 1 (i++), चूँकि अनुक्रम के सदस्यों के बीच अंतर एक है:
  • (var i=0; i के लिए)<10; i++) { document.write(i+"
    "); }

    उदाहरण में, लूप काउंटर के मान स्क्रीन पर प्रदर्शित होते हैं, क्योंकि क्रमशः i++ काउंटर की वृद्धि स्क्रीन पर दिखाई देगी 0 1 2 3 ... 9 , और प्रत्येक अंक - एक नई लाइन से (टैग
    ).

  • ब्राउज़र में स्क्रिप्ट का परीक्षण करें.

कार्य Js 3_9. 1 पहले 15 .

  1. संख्याओं के अनुक्रम के रूप में लूप काउंटर का उपयोग करें के लिए.
  2. योजक चर के लिए, चर पहचानकर्ता का उपयोग करें जोड़.

सांकेतिक टुकड़ा:

(var i=...;...;...)( sum = sum + ...; ) ... के लिए

लूप निकास विवरण तोड़नाऔर जारी रखनाजावास्क्रिप्ट में. ऑपरेटर बाहर निकलना

ब्रेक स्टेटमेंट पूरे लूप बॉडी के निष्पादन को बाधित करता है, अर्थात। जावास्क्रिप्ट में एक लूप टूट जाता है।

जबकि जारी कथन लूप के वर्तमान पुनरावृत्ति के निष्पादन को बाधित करता है, लेकिन, अगले पुनरावृत्ति से लूप के निष्पादन को जारी रखता है।

एक उदाहरण का उपयोग करके ब्रेक और जारी कथन के संचालन पर विचार करें:

उदाहरण:कोड स्निपेट एल्गोरिदम को समझें. आउटपुट क्या होगा?

सांकेतिक टुकड़ा:

1 2 3 4 5 6 (var i= 0 ; i के लिए)< 10 ; i++ ) { if (i== 4 ) continue ; document.write (i+ "
" ) ; यदि (i== 8 ) टूट जाए ; )

(var i=0; i के लिए)<10;i++) { if (i==4) continue; document.write(i+"
"); यदि (i==8) टूट जाए; )


✍ समाधान:
  • उदाहरण की तीसरी पंक्ति में एक शर्त है जिसके कारण संख्या 4 प्रदर्शित नहीं किया जाएगा: कथन जारी रखनामौजूदा लूप को पूरा किए बिना लूप के अगले पुनरावृत्ति पर चला जाएगा।
  • लाइन नंबर 5 में, लूप बाहर निकल गया है, लेकिन नंबर 8 स्क्रीन पर प्रिंट किया जाएगा, क्योंकि आउटपुट स्टेटमेंट कंडीशन से पहले आता है (चौथी लाइन पर)। मुलाकात हुई तोड़ना, दुभाषिया लूप से बाहर निकल जाएगा।
  • वह। स्क्रीन पर होगा: 0 1 2 3 5 6 7 8 - प्रत्येक अंक एक नई लाइन पर।

टास्क जेएस 3_10.सभी पूर्णांकों का योग प्रिंट करें 1 पहले 15 , कुल संख्या को छोड़कर 5 और 7 .

निकास वक्तव्य

जावास्क्रिप्ट भाषा प्रोग्राम कोड से बाहर निकलने के लिए एक ऑपरेटर प्रदान करती है - निकास ऑपरेटर।
अक्सर, ऑपरेटर का उपयोग उपयोगकर्ता इनपुट त्रुटि को बाहर करने के लिए किया जाता है।


एक उदाहरण पर विचार करें:

उदाहरण 6:उपयोगकर्ता से एक नंबर दर्ज करने के लिए कहें. यदि कोई संख्या नहीं है, तो एक संदेश प्रदर्शित करें "एक नंबर की जरूरत है!"और प्रोग्राम बंद करो.


✍ समाधान:
  • वेरिएबल को आरंभ करें संख्याउपयोगकर्ता द्वारा मोडल विंडो में दर्ज किया गया मान:
  • var नंबर = प्रॉम्प्ट ("कृपया एक नंबर दर्ज करें");

  • किसी स्ट्रिंग को पूर्णांक में बदलने के लिए parseInt फ़ंक्शन का उपयोग करके, जांचें कि इनपुट मान एक संख्या है या नहीं:
  • संख्या=parseInt(संख्या); // NaN लौटाता है - कोई संख्या नहीं

    यदि कोई गैर-संख्या दर्ज की गई है, तो फ़ंक्शन NaN मान लौटाएगा। कोई संख्या नहीं- कोई संख्या नहीं)।

  • परिवर्तनीय मान की जाँच करें संख्या IsNaN फ़ंक्शन का उपयोग करना:
  • x = isNaN(संख्या); // यदि मान संख्यात्मक नहीं है तो सत्य लौटाएगा

    isNaN फ़ंक्शन मान लौटाता है सत्ययदि चर एक संख्या नहीं है

  • द्वारा "झूठ" नियमएक परिवर्तनीय मान जाँच व्यवस्थित करें एक्स. यदि मान संख्यात्मक नहीं है, तो संबंधित टिप्पणी प्रिंट करें और कार्यक्रम समाप्त करें:
  • यदि (x)( अलर्ट('नंबर आवश्यक है!'); बाहर निकलें; // प्रोग्राम से बाहर निकलें)

  • प्रोग्राम को जारी रखने के लिए (यदि दर्ज किया गया मान एक संख्या था), इनपुट के लिए संकेत देते हुए निम्नलिखित विंडो प्रदर्शित करें:
  • चेतावनी ("दूसरा नंबर दर्ज करें"); // यदि आप कोई नंबर दर्ज नहीं करते हैं, तो ऑपरेटर निष्पादित नहीं किया जाएगा

  • ब्राउज़र में स्क्रिप्ट का परीक्षण करें.

आत्म-नियंत्रण के लिए प्रश्न:

  1. तीन लूप पैरामीटर सूचीबद्ध करें के लिएऔर उनका उद्देश्य स्पष्ट करें।
  2. कौन से कथनों का उद्देश्य लूप से बाहर निकलना और उसे बाधित करना है? उनके उपयोग के उदाहरण दीजिए।
  3. ऑपरेटर किसके लिए है? बाहर निकलना?

क्या एक FOR में एकाधिक काउंटर रखना संभव है?

उपयोग करते समय फॉर लूप के साथ एक दिलचस्प काम संभव है एक चक्र में एक साथ दो काउंटर.
एक उदाहरण पर विचार करें:

उदाहरण 7:स्क्रिप्ट का उपयोग करके, निम्नलिखित चर-मूल्य जोड़े को तीन पंक्तियों में प्रिंट करें: i=0 j=2 i=1 j=3 i=2 j=4


✍ समाधान:
  • लूप में दो काउंटर व्यवस्थित करें: अनुक्रम को आउटपुट करने के लिए काउंटर i 0 1 2 , अनुक्रम को आउटपुट करने के लिए काउंटर जे 2 3 4 :
  • 1 2 3 के लिए (i= 0 , j= 2 ; i< 10 , j< 5 ; i++, j++ ) { }

    for(i=0, j=2; i<10, j<5; i++, j++) { }

    लूप के तीन मापदंडों में से प्रत्येक में अब दो मान हैं, जो सूचीबद्ध हैं कॉमा द्वारा अलग(उदाहरण के लिए, दो मानों वाला पहला पैरामीटर: i=0, j=2)। पैरामीटर स्वयं सूचीबद्ध हैं अर्धविराम के माध्यम से(;).

  • प्रत्येक पंक्ति से आउटपुट के लिए, टैग का उपयोग करें
    :
  • 1 2 3 4 के लिए (i= 0 , j= 2 ; i< 10 , j< 5 ; i++, j++ ) { document.write ("
    i='' , i, ''j='' , j) ; )

    for(i=0, j=2; i<10, j<5; i++, j++) { document.write("
    i='', i, ''j='',j); )

पेज जेनरेशन "ऑन द फ़्लाई": यह कैसा है?

अगला कार्य करने से पहले एक उदाहरण पर विचार करें गतिशील रूप से एक HTML पृष्ठ बनानाजावास्क्रिप्ट का उपयोग करना।

उदाहरण 8:

  • उपयोगकर्ता इनपुट के आधार पर वेब पेज पर गतिशील रूप से बुलेटेड और क्रमांकित सूचियाँ उत्पन्न करने की आवश्यकता: उपयोगकर्ता को प्रवेश करने के लिए संकेत दें लिस्ट व्यू(संख्यांकित (संख्या 1) या बुलेटेड (संख्या 2)), और फिर सूची आइटम की संख्या.
  • उत्तर के आधार पर, आवश्यक संख्या में आइटमों के साथ बुलेटेड या क्रमांकित सूची के टैग प्रदर्शित करें।
  • यदि कोई गैर-मौजूद सूची प्रकार दर्ज किया गया है, तो एक संदेश जारी करें "सही प्रकार दर्ज करें!"और प्रोग्राम से बाहर निकलें ()।

आइए टैग याद रखें:
क्रमांकित सूची टैग:

<राजभाषा > <ली > <ली > <ली > </ol>

बुलेटेड सूची टैग:

var listType=prompt ("बुलेट सूची के लिए "1" दर्ज करें, क्रमांकित सूची के लिए "2" दर्ज करें");

  • दर्ज किए गए मान की जाँच करें: क्रमांकित सूची (संख्या 1) के लिए, टैग प्रिंट करें
      , चिह्नित (संख्या 2) के लिए - टैग
        . यदि कोई अन्य मान दर्ज किया गया है, तो एक नोट प्रिंट करें और प्रोग्राम समाप्त करें:

            ") अन्य (चेतावनी("सही प्रकार दर्ज करें"); बाहर निकलें; )

          • वेरिएबल को आरंभ करें कोल्वोउपयोगकर्ता द्वारा मोडल विंडो में दर्ज किया गया मान:
          • var kolvo=prompt('अंकों की संख्या दर्ज करें');

          • किसी स्ट्रिंग मान को संख्यात्मक मान में बदलने के लिए, parseInt फ़ंक्शन का उपयोग करें:
          • (var i=1; i के लिए)<=kolvo; i++) document.write("");

          • चूँकि सूचियाँ उपयुक्त टैग के साथ बंद की जाती हैं, सूची के प्रकार के आधार पर आउटपुट समापन टैग:
          • यदि (सूची प्रकार== "1") document.write("" ) अन्यथा यदि (सूची प्रकार== "2") दस्तावेज़.लिखें ("" ) ;

            यदि (सूची प्रकार=='1'') document.write(''

        ") अन्यथा यदि (सूची प्रकार==2") document.write("
      ");

    1. ब्राउज़र में स्क्रिप्ट का परीक्षण करें.
    2. टास्क जेएस 3_11.
      एक स्क्रिप्ट लिखें जो टैग प्रदर्शित करे इनपुट(नियंत्रण तत्व) विभिन्न प्रकार के, दर्ज संख्या के आधार पर:

      1 - पाठ्य से भरा,
      2 - बटन,
      3 - रेडियो(बदलना)।

      प्रदर्शित टैग की संख्या का भी अनुरोध किया जाना चाहिए।

      आइए टैग याद रखें:

      1 के लिए - पाठ फ़ील्ड: 2 के लिए - बटन: 3 के लिए - रेडियो:

      नमूना आउटपुट:

      टास्क जेएस 3_12.लूप्स के लिए जावास्क्रिप्ट का उपयोग करके एक 9x9 चेकबोर्ड बनाएं। बोर्ड "ड्राइंग" तालिका के लिए html टैग का अनुसरण करता है:

      आइए टैग याद रखें:

      <तालिका सीमा = "1" चौड़ाई = "30%"> <tr > <टीडी >-</टीडी> -</टीडी> </tr> </टेबल>

      --

      • 9 रेखाएँ खींचने के लिए, आपको काउंटर i के साथ एक बाहरी लूप को व्यवस्थित करने की आवश्यकता है।
      • प्रत्येक पंक्ति में 9 सेल बनाने के लिए, आपको काउंटर j के साथ लूप के लिए एक आंतरिक (नेस्टेड) ​​व्यवस्थित करने की आवश्यकता है।
      • सेल और पंक्ति टैग बनाने के लिए, document.write विधि का उपयोग करें।

      परिणाम:

      इसके अतिरिक्त:

      1. लूप काउंटर (i और j) का उपयोग करके तालिका कक्षों में गुणन तालिका प्रदर्शित करें।
      2. पहली पंक्ति और पहले कॉलम को लाल पृष्ठभूमि के साथ प्रदर्शित करें (तालिका सेल विशेषता bgcolor):
        <tdbgcolor='लाल'>-</टीडी>

        -

      परिणाम:


      आत्म-नियंत्रण के लिए प्रश्न:

      1. बताएं कि "डायनामिक पेज बिल्डिंग" की अवधारणा का क्या अर्थ है?
      2. किसी पृष्ठ को गतिशील रूप से बनाते समय किस भाषा निर्माण का सबसे अधिक उपयोग किया जाता है?

      जावास्क्रिप्ट में लूप स्टेटमेंट - जबकि

      जबकि कथन का वाक्यविन्यास है:

      जबकि (स्थिति) ( //..स्टेटमेंट ब्लॉक.. );

      उदाहरण:एक संवाद बॉक्स में दो तक की शक्तियाँ प्रदर्शित करें 1000 (2,4,8...512). अलर्ट() विधि का उपयोग करें


      ✍ समाधान:
      • स्क्रिप्ट सूचीकरण:
      • 1 2 3 4 5 वर ए = 1 ; जबकि एक< 1000 ) { a*= 2 ; alert(a) ; }

        वर ए = 1; जबकि एक< 1000){ a*=2; alert(a); }

        a*=2 → कंपाउंड असाइनमेंट ऑपरेशन का उपयोग किया जाता है: उत्पाद को असाइनमेंट के साथ जोड़ा जाता है, यानी। a = a*2 के समान

      • ब्राउज़र में परिणाम का परीक्षण करें.

      थोड़ी देर के लूप में ब्रेक और कंटिन्यू स्टेटमेंट कैसे काम करते हैं?

      उदाहरण:

      वर ए = 1 ; जबकि एक< 1000 ) { a*= 2 ; if (a== 64 ) continue ; if (a== 256 ) break ; alert(a) ; }

      वर ए = 1; जबकि एक< 1000){ a*=2; if (a==64) continue; if (a==256) break; alert(a); }

      तक दो की शक्तियाँ प्रदर्शित की जाएंगी 128 समावेशी, और मूल्य 64 छोड़ दिया जाएगा. वे। संवाद बॉक्स में हम देखेंगे: 2 4 8 16 32 128

      टास्क जेएस 3_13.निम्नलिखित कोड स्निपेट कौन से मान आउटपुट करेगा?

      वर काउंटर = 5; जबकि (काउंटर< 10) { counter++; document.write("Counter " + counter); break; document.write("Эта строка не выполнится."); }


      टास्क जेएस 3_14.निर्माण कोड लिखें एक्सएक स्तर तक थोड़ी देर के लूप का उपयोग करना। परिवर्तनीय मानों को क्वेरी करें और परिणाम को अलर्ट() के साथ प्रदर्शित करें।

      कोड जोड़ें:

      1 2 3 4 5 6 7 8 9 वर एक्स = ...; भिन्न = ...; काउंटर = 1 ; संख्या = एक्स; जबकि (...) (चिसलो= x* ...; काउंटर= ...; ) चेतावनी(चिसलो) ;

      वर एक्स = ...; भिन्न = ...; काउंटर = 1; संख्या=x; जबकि (...)( chislo=x*...; काउंटर=...; ) चेतावनी(chislo);

      किसी संख्या का भाज्य ज्ञात करने के लिए डिज़ाइन किए गए प्रोग्राम में त्रुटि को ठीक करें:

      1 2 3 4 5 6 7 8 9 10 11 12 13 var काउंटर = प्रॉम्प्ट ("एक नंबर दर्ज करें"); वर फैक्टोरियल = 1 ; दस्तावेज़.लिखें( "किसी संख्या का गुणनखंड:"+ काउंटर + "!= " ) ; करो (यदि (काउंटर == 0 ) (फैक्टोरियल = 1 ; ब्रेक ; ) फैक्टरियल = फैक्टोरियल / काउंटर; काउंटर = काउंटर + 1 ; ) जबकि (काउंटर > 0 ) ; दस्तावेज़.लिखें (तथ्यात्मक) ;

      var काउंटर = प्रॉम्प्ट ("एक नंबर दर्ज करें"); वर फैक्टोरियल = 1; document.write("किसी संख्या का गुणनखंड:" + काउंटर + "! = "); करो (यदि (काउंटर == 0) (फैक्टोरियल = 1; ब्रेक; ) फैक्टोरियल = फैक्टोरियल / काउंटर; काउंटर = काउंटर + 1; ) जबकि (काउंटर > 0); दस्तावेज़.लिखें(तथ्यात्मक);


      टास्क जेएस 3_16.उपयोगकर्ता इनपुट के लिए प्रोग्राम को संशोधित करें:

      उपयोगकर्ता नाम के लिए संकेत दें जब तक कि उपयोगकर्ता वास्तव में उपयोगकर्ता नाम दर्ज न कर दे (यानी फ़ील्ड वास्तव में भर जाए और रद्द कुंजी नहीं दबाई जाए)। जब नाम डाला जाए तो आउटपुट "हैलो नाम!". दस्तावेज़।

      जावास्क्रिप्ट में त्रुटियाँ कैसे खोजें?

      कुछ मामलों में, पृष्ठ पर मौजूद कोड किसी अज्ञात कारण से काम नहीं करता है। त्रुटि कहां देखें? ऐसे मामलों में, आप ट्राई..कैच स्टेटमेंट का उपयोग कर सकते हैं।

      ट्राई..कैच स्टेटमेंट कोड के एक टुकड़े को निष्पादित करने का प्रयास करता है, और यदि कोड में कोई त्रुटि है, तो स्क्रीन पर त्रुटि प्रदर्शित करना संभव है।
      त्रुटि e.message ऑब्जेक्ट में संग्रहीत है।

      एक उदाहरण पर ऑपरेटर के संचालन पर विचार करें:

      उदाहरण:प्रोग्राम में किसी त्रुटि के साथ एक ऑपरेटर लिखें। अनुमानित त्रुटिपूर्ण कोड में त्रुटि की जाँच करें: यदि कोड में कोई त्रुटि है, तो एक संदेश जारी करें "त्रुटि प्रबंधन: त्रुटि नाम". गलत कथन की जाँच करने के बाद, चाहे कोड में कोई त्रुटि हो, एक संदेश जारी करें "अंतिम चरण"


      ✍ समाधान:
      • एक त्रुटि संदेश के रूप में, हम एक त्रुटि के साथ लिखी गई प्रॉम्प्ट() विधि का उपयोग करेंगे - प्रोमट(). त्रुटि संदेश को प्रयास ब्लॉक में संलग्न करें:
      • चेतावनी('पहले'); प्रयास करें (promt('नंबर दर्ज करें'); // त्रुटि वाला कथन)

        अंग्रेजी से प्रयास करें. - "कोशिश करें", इस प्रकार, हम कोशिश कथन को एक कोड खंड से पहले रखते हैं जिसमें एक त्रुटि हो सकती है (हमारे मामले में, वास्तव में एक त्रुटि है)।

      • त्रुटि संदेश को कैच ब्लॉक में रखा जाना चाहिए:
      • 6 7 8 9 पकड़ो (ई) (चेतावनी( "त्रुटि प्रबंधन: "+ई.संदेश); )

        कैच (ई) ( अलर्ट ("त्रुटि प्रबंधन:" + ई.संदेश); ​​)

        यदि वास्तव में कोई त्रुटि है, तो कैच स्टेटमेंट (अंग्रेजी से "टू कैच") इस त्रुटि को ई ऑब्जेक्ट में संग्रहीत करता है। भविष्य में इसे एक डायलॉग बॉक्स - e.message में प्रदर्शित किया जा सकता है।

      • अंतिम संदेश डालें जिसे आप प्रदर्शित करना चाहते हैं, भले ही कोड में कोई त्रुटि हो, इसे अंततः ब्लॉक में रखें:
      • अंतत: (चेतावनी("क्रियाएं समाप्त करना"); ) चेतावनी("बाद");

        यदि अभी भी कोई त्रुटि है, तो दुभाषिया, हमारे उदाहरण में इसके आउटपुट के बाद, कैच ब्लॉक को निष्पादित करने के लिए स्विच करेगा, और फिर अंत में (अंग्रेजी "समापन", "आखिरकार") से, जिसे हमेशा निष्पादित किया जाएगा, चाहे कुछ भी हो कोई त्रुटि हुई या नहीं. भले ही कैच ब्लॉक में कोई त्रुटि हो।

      महत्वपूर्ण:निर्माण में अंततः ब्लॉक वैकल्पिक है।


      टास्क जेएस 3_17.उपरोक्त उदाहरण को निम्नलिखित संशोधनों के साथ चलाएँ:

    3. अंततः ब्लॉक हटाएं और कोड को चलते हुए देखें।
    4. त्रुटि ऑपरेटर को त्रुटि रहित ऑपरेटर से बदलें और देखें कि परिणाम क्या होगा।
    5. सारांश:

      पाठ में निम्नलिखित जावास्क्रिप्ट भाषा ऑपरेटरों और संरचनाओं को शामिल किया गया:

      जावास्क्रिप्ट सशर्त कथन:

    6. यदि कथन
    7. सशर्त असाइनमेंट (टर्नरी ऑपरेटर)
    8. स्विच कथन
    9. लूप स्टेटमेंट:

    10. पाश के लिए
    11. घुमाव के दौरान
    12. करो...जबकि लूप
    13. के लिए...लूप में
    14. अंतिम कार्य Js 3_18.
      दो लोगों के लिए एक गेम बनाएं:

      1. प्रोग्राम पहले खिलाड़ी को एक नंबर दर्ज करने के लिए कहता है 1 पहले 100 (दूसरा खिलाड़ी दर्ज किया गया नंबर नहीं देखता है)। फिर दूसरे खिलाड़ी को दर्ज संख्या का अनुमान लगाने के लिए कहा जाता है। प्रतिक्रिया एक संदेश है "कुछ"या "बहुत ज़्यादा"दर्ज किये गये उत्तर पर निर्भर करता है। यदि खिलाड़ी सही अनुमान लगाता है, तो बधाई प्रदर्शित होती है। यदि वह अनुमान नहीं लगाता है, तो खेल जारी रहता है (जब तक संख्या का वास्तव में अनुमान नहीं लगाया जाता)।
      2. प्रयासों की संख्या की गणना करें और संख्या का अनुमान लगने पर परिणाम लौटाएँ।


      आत्म-नियंत्रण के लिए प्रश्न:

      1. फॉर इन लूप का उपयोग करना कब उचित है? इसके उपयोग का एक उदाहरण दीजिए।
      2. ट्राई..कैच स्टेटमेंट का उद्देश्य क्या है?
      3. प्रत्येक ट्राई..कैच स्टेटमेंट ब्लॉक का उद्देश्य स्पष्ट करें।


  • मित्रों को बताओ