JavaScript printf और String.Format का हिंदी एनालॉग: पूर्ण विश्लेषण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

JavaScript printf और String.Format का एनालॉग: प्रो की तरह स्ट्रिंग्स को कैसे फ़ॉर्मेट करें?

\n\n

क्या आपने कभी JavaScript में ऐसा कोड लिखा है?

\n\n
let name = 'अलेक्सेय';\nlet age = 28;\nconsole.log('नमस्ते, मेरा नाम ' + name + ' है और मैं ' + age + ' साल का हूँ।');
\n\n

अगर हाँ — तो आप जानते हैं कि यह कितना परेशान करने वाला है। बार-बार कोट्स खोलना और बंद करना, प्लस लगाना, स्पेस में उलझना। और अगर 5-6 वेरिएबल डालने हों? भयानक!

\n\n

अन्य भाषाओं में यह समस्या बहुत पहले हल हो गई थी। Python में f"नमस्ते, {name}" और "%s %d" % (name, age) है। C में — प्रसिद्ध printf। C# और Java में — String.Format। और JavaScript में क्या?

\n\n

स्पॉयलर: समाधान मौजूद है, और एक से अधिक। इस लेख में हम JavaScript में स्ट्रिंग फ़ॉर्मेटिंग के सभी तरीकों का विश्लेषण करेंगे — क्लासिक से लेकर आधुनिक तक। आप जानेंगे कि अपने कार्य के लिए JavaScript में printf का कौन सा एनालॉग चुनना है, और हमेशा के लिए कॉन्केटनेशन को भूल जाएंगे।

\n\n

"JavaScript equivalent to printf/String.Format" प्रश्न इतना लोकप्रिय क्यों है?

\n\n

Stack Overflow पर इस प्रश्न को सैकड़ों हज़ारों व्यूज़ मिले हैं। और यह कोई संयोग नहीं है। हर डेवलपर जो किसी दूसरी भाषा से JavaScript पर आता है, सबसे पहले स्ट्रिंग फ़ॉर्मेटिंग के परिचित टूल की तलाश करता है।

\n\n

समस्या यह है कि शुद्ध JavaScript में printf या String.Format का कोई अंतर्निहित एनालॉग नहीं है। केवल कॉन्केटनेशन है (+ के माध्यम से स्ट्रिंग्स को जोड़ना)। लेकिन डेवलपर्स ने कई सुंदर समाधान खोज लिए हैं, और हम उनका विश्लेषण करेंगे।

\n\n

तरीका 1: टेम्पलेट स्ट्रिंग्स (Template Literals) — आधुनिक मानक

\n\n

ES6 (2015) से शुरू करके, JavaScript में टेम्पलेट स्ट्रिंग्स आ गईं। यह रोज़मर्रा के उपयोग के लिए printf और String.Format का सबसे अच्छा एनालॉग है। ये सभी आधुनिक ब्राउज़रों और Node.js में काम करती हैं।

\n\n

सिंटैक्स: सामान्य कोट्स के बजाय बैकटिक्स ` का उपयोग करें, और वेरिएबल्स को ${} के माध्यम से डालें।

\n\n
let name = 'मारिया';\nlet age = 25;\nlet city = 'मॉस्को';\n\n// कॉन्केटनेशन के बजाय\nlet message = `नमस्ते, मेरा नाम ${name} है, मैं ${age} साल की हूँ, मैं ${city} से हूँ।`;\nconsole.log(message); \n// आउटपुट: नमस्ते, मेरा नाम मारिया है, मैं 25 साल की हूँ, मैं मॉस्को से हूँ।
\n\n

लेकिन यह सब कुछ नहीं है! ${} के अंदर कोई भी JavaScript एक्सप्रेशन निष्पादित किया जा सकता है:

\n\n
let a = 10;\nlet b = 5;\n\nconsole.log(`योग: ${a + b}`);          // योग: 15\nconsole.log(`बड़ा? ${a > b ? 'हाँ' : 'नहीं'}`); // बड़ा? हाँ\nconsole.log(`यादृच्छिक: ${Math.random()}`);      // यादृच्छिक: 0.4837...
\n\n

यह JavaScript में printf का सबसे अच्छा एनालॉग क्यों है?

\n
    \n
  • पठनीयता — कोड इन्सर्ट के साथ सामान्य टेक्स्ट जैसा दिखता है
  • \n
  • सुरक्षा — एस्केपिंग स्वचालित रूप से होती है
  • \n
  • मल्टी-लाइन — टेक्स्ट को कई पंक्तियों में लिखा जा सकता है
  • \n
  • एक्सप्रेशन — गणना के परिणाम डाले जा सकते हैं
  • \n
\n\n

मल्टी-लाइन टेम्पलेट स्ट्रिंग्स

\n\n
let html = `\n<div class="card">\n  <h2>${title}</h2>\n  <p>${description}</p>\n</div>\n`;\n\nconsole.log(html);\n// आउटपुट — लाइन ब्रेक के साथ साफ-सुथरा HTML
\n\n

कॉन्केटनेशन से तुलना करें — अंतर बहुत बड़ा है!

\n\n

तरीका 2: sprintf-js लाइब्रेरी — JavaScript में क्लासिक printf

\n\n

अगर आप C के printf या Python के %-फ़ॉर्मेटिंग के लिए पुरानी यादों में हैं, तो आपके पास एक बढ़िया विकल्प है — sprintf-js लाइब्रेरी।

\n\n

npm के माध्यम से इंस्टॉलेशन:

\n
npm install sprintf-js
\n\n

उपयोग:

\n\n
const sprintf = require('sprintf-js').sprintf;\nconst vsprintf = require('sprintf-js').vsprintf;\n\n// सरल फ़ॉर्मेटिंग\nlet result = sprintf('नमस्ते, %s! आप %d साल के हैं।', 'इवान', 30);\nconsole.log(result); // नमस्ते, इवान! आप 30 साल के हैं।\n                

ब्लॉग

पुस्तक अनुशंसाएँ