Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

जावास्क्रिप्ट:% ऑपरेटर स्ट्रिंग्स पर क्यों काम करता है? - (टाइप ज़बरदस्ती)

<घंटा/>

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

हमें यह समझाने की ज़रूरत है कि जावास्क्रिप्ट ऐसा क्यों करता है?

यहाँ समस्या कोड है -

उदाहरण

const numStr = '127';
const result = numStr % 5;
const firstName = 'Armaan';
const lastName = 'Malik';
const fullName = firstName + + lastName;
console.log('modulo result: ', result);
console.log('full name: ', fullName);

आउटपुट

modulo result: 2
full name: ArmaanNaN

कोड में कूदने से पहले, आइए पहले जावास्क्रिप्ट के सबसे बुनियादी विषयों में से एक के बारे में थोड़ा सीखें → टाइप करें जबरदस्ती।

जबरदस्ती टाइप करें

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

टाइप ज़बरदस्ती एक बहुत बड़ा विषय है और इस समाधान की लंबाई को सीमित करने के लिए हम केवल इस कोड स्निपेट में उपयोग की जाने वाली चीजों की खोज करेंगे। दो प्रकार के ज़बरदस्ती में से, एक जो स्वचालित रूप से संकलक द्वारा किया जाता है उसे निहित प्रकार का जबरन कहा जाता है।

यह इस प्रकार है -

कोई भी डेटा प्रकार (आदिम या गैर-आदिम) परोक्ष रूप से -

. के लिए बाध्य किया जाएगा
  • स्ट्रिंग (जब बाइनरी + ऑपरेटर के साथ प्रयोग किया जाता है)।

  • संख्या (जब +, -, /, *,% जैसे अंकगणितीय ऑपरेटरों के साथ प्रयोग किया जाता है और केवल यूनरी +ट्रिगर

संख्या ज़बरदस्ती बाइनरी नहीं +, जब तुलना ऑपरेटर के साथ प्रयोग किया जाता है, बिटवाइज़ ऑपरेटर या लूज़ इक्वलिटी ऑपरेटर[==])

  • बूलियन (जब तार्किक ऑपरेटरों के साथ प्रयोग किया जाता है और | ! )

***एक और ध्यान देने वाली बात यह है कि यूनरी (+) ऑपरेटर की प्राथमिकता बाइनरी (+) ऑपरेटर से अधिक है।

कोड स्पष्टीकरण

तो, इन बातों को स्पष्ट करने के साथ, आइए कोड पर चलते हैं और लाइन दर लाइन पर चलते हैं -

Line 2 → result = '127' % 5;

निहित जबरदस्ती % ऑपरेटर को लेता है और देखता है, जिसके कारण यह स्ट्रिंग '127' को नंबर 127 में परिवर्तित करता है और 2 परिणाम में संग्रहीत हो जाता है -

Line 5 → fullName = firstName + + lastName;
fullName = firstName + (+lastName);

सामान्य तौर पर, गणना बाएं से दाएं होती, लेकिन यूनरी ऑपरेटर की प्राथमिकता के कारण, इसे पहले नंबर पर परिकलित किया जाता है और ऑपरेशन इस तरह हो जाता है -

fullName = firstName + NaN;

और फिर

fullName = ArmaanNaN

  1. जावास्क्रिप्ट टाइप जबरदस्ती क्या है?

    टाइप ज़बरदस्ती का अर्थ है एक डेटाटाइप का स्वचालित रूप से या परोक्ष रूप से दूसरे में रूपांतरण। जावास्क्रिप्ट टाइप ज़बरदस्ती के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .result,.sample {फ़ॉन्ट-आकार:20px; फ़ॉन्ट-वजन:500; }JavaScr

  1. जावास्क्रिप्ट में टेम्प्लेट स्ट्रिंग्स।

    टेम्पलेट को ES6 में एक स्ट्रिंग के अंदर एम्बेड अभिव्यक्ति की अनुमति देने के लिए पेश किया गया था। वे या उद्धरण चिह्नों के स्थान पर बैकटिक (``) का प्रयोग करते हैं। वे स्ट्रिंग इंटरपोलेशन का एक बेहतर तरीका प्रदान करते हैं और अभिव्यक्तियों को ${a+b} जैसे तरीके से एम्बेड किया जा सकता है। यह + ऑपरेटर की

  1. क्यों addEventListener को 'चयन' तत्व जावास्क्रिप्ट में काम नहीं करता है?

    इसके बजाय, addEventListener() के साथ querySelector() का उपयोग करें। उदाहरण निम्नलिखित कोड है - <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">