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

JavaScript: % ऑपरेटर स्ट्रिंग पर क्यों काम करता है? - (टाइप कोएरशन)


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

हमें यह समझाना है कि 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

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

टाइप कोएरशन

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

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

यह अनुसरण करता है:

  • कोई भी डेटा प्रकार (प्रिमिटिव या नॉन-प्रिमिटिव) इम्प्लिसिटली इसमें बदल जाएगा → स्ट्रिंग (जब बाइनरी + ऑपरेटर के साथ उपयोग किया जाता है)।
  • नंबर (जब अंकगणितीय ऑपरेटर्स जैसे +, -, /, *, % के साथ उपयोग किया जाता है और केवल यूनरी + नंबर कोएरशन ट्रिगर करता है बाइनरी + नहीं, जब तुलना ऑपरेटर, बिटवाइज़ ऑपरेटर या लूज़ इक्वैलिटी ऑपरेटर [==] के साथ उपयोग किया जाता है)।
  • बूलियन (जब लॉजिकल ऑपरेटर्स &, |, ! के साथ उपयोग किया जाता है)।

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

कोड व्याख्या

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

Line 2 → result = '127' % 5;

इम्प्लिसिट कोएरशन % ऑपरेटर को देखता है, जिसके कारण यह स्ट्रिंग '127' को नंबर 127 में बदल देता है और 2 result में स्टोर हो जाता है।

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

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

fullName = firstName + NaN;

और फिर

fullName = ArmaanNaN

  1. जावास्क्रिप्ट टाइप कोएर्सन (प्रकार बलात परिवर्तन) क्या है? जावास्क्रिप्ट टाइप कोएर्सन (प्रकार बलात परिवर्तन) क्या है?

    परिचय टाइप कोएर्सन का अर्थ है एक डेटा टाइप का दूसरे में स्वचालित या निहित रूपांतरण। जावास्क्रिप्ट ऑपरेटर्स (जैसे +, ==, if कंडीशन) के दौरान स्वचालित रूप से टाइप कोएर्सन करता है। उदाहरण निम्न कोड जावास्क्रिप्ट टाइप कोएर्सन के लिए है: <!DOCTYPE html> <html lang="hi"> <head&

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

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

  1. JavaScript में  select  एलिमेंट पर addEventListener काम क्यों नहीं करता JavaScript में 'select' एलिमेंट पर addEventListener काम क्यों नहीं करता

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