JavaScript में टेम्पलेट स्ट्रिंग की मदद से स्ट्रिंग के अंदर एक्सप्रेशन डाले जा सकते हैं। इसे स्ट्रिंग इंटरपोलेशन भी कहते हैं। यह सुविधा बिल्ट-इन String ग्लोबल ऑब्जेक्ट की क्षमता को आगे बढ़ाती है।
JavaScript में टेम्पलेट स्ट्रिंग बनाने के लिए टेक्स्ट को बैकटिक के अंदर लिखिए। इससे टेक्स्ट में नई लाइनें और दूसरे खास अक्षर तो आ ही सकते हैं, आप वेरिएबल और दूसरे एक्सप्रेशन भी डाल सकते हैं।
const num1 = 1;
const num2 = 2;
`Adding ${num1} and ${num2} gives ${num1 + num2}.`;
// => Adding 1 and 2 gives 3.
ऊपर के उदाहरण में टेम्पलेट स्ट्रिंग दिखाने के लिए बैकटिक, यानी (``), इस्तेमाल होते हैं। ${...} वह प्लेसहोल्डर है जिसकी जगह पर असली वैल्यू रखी जाती है। जो डेटा स्ट्रिंग नहीं होता, वह अपने आप स्ट्रिंग में बदल जाता है। इस विषय के बारे में टाइप कन्वर्ज़न कॉन्सेप्ट में बताया गया है। टेम्पलेट स्ट्रिंग के साथ हर तरह के एक्सप्रेशन इस्तेमाल किए जा सकते हैं।
const track = 'JavaScript';
`This track on exercism.org is ${track.toUpperCase()}.`;
// => This track on exercism.org is JAVASCRIPT.
जब आपको स्ट्रिंग को कई लाइनों में लिखना हो:
`This is an example of using template
strings to accomplish multiple
lines`;
स्ट्रिंग में वैल्यू रखने की जो सुविधाएँ मिलती हैं, उनकी मदद से आप अपने कोड में तर्क भी जोड़ सकते हैं, जिससे तय होता है कि आउटपुट स्ट्रिंग क्या होनी चाहिए।
इसका एक उदाहरण है टर्नरी ऑपरेटर डालना। यह ऑपरेटर if/else स्टेटमेंट लिखने का छोटा रूप है। इसका सिंटैक्स ऐसा है: condition ? consequent-expression : alternative-expression। अगर शर्त सही होती है, तो कोलन के बाईं ओर वाला ऑपरेंड लौटाया जाता है। वरना टर्नरी एक्सप्रेशन का परिणाम कोलन के दाईं ओर वाला ऑपरेंड होता है।
const grade = 95;
`You have ${grade > 90 ? 'passed' : 'failed'} the exam.`;
// => You have passed the exam.
इस अभ्यास में आप एक साइन बनाने वाली कंपनी की मदद के लिए कोड लिखेंगे, ताकि वह अपने साइन पर अपने हिसाब से संदेश बना सके।
buildSign(occasion, name) फंक्शन बनाइए, जो occasion पैरामीटर के रूप में एक स्ट्रिंग और name पैरामीटर के रूप में किसी का नाम रखने वाली एक स्ट्रिंग लेता है।
साइन पर लिखा जाने वाला संदेश तैयार करने के लिए इन दोनों पैरामीटर को एक टेम्पलेट लिटरल में डाला जाएगा।
buildSign('Birthday', 'Rob');
// => "Happy Birthday Rob!"
buildBirthdaySign(age) फंक्शन बनाइए, जो उम्र लेता है और उसी उम्र के आधार पर साइन पर लिखे संदेश का एक हिस्सा तय करता है।
अगर उम्र 50 या उससे अधिक है, तो साइन उपयोगकर्ता को mature कहेगा, वरना उसे young कहेगा।
अपेक्षित आउटपुट ठीक नीचे दिखाया गया है:
buildBirthdaySign(50);
// => "Happy Birthday! What a mature fellow you are."
buildBirthdaySign(45);
// => "Happy Birthday! What a young fellow you are."
graduationFor(name, year) फंक्शन बनाइए, जो एक नाम को स्ट्रिंग पैरामीटर के रूप में और एक साल को संख्या पैरामीटर के रूप में लेता है। यह स्ट्रिंग इंटरपोलेशन की मदद से साइन के लिए एक वाक्य बनाता है, जिसमें संदेश की दोनों पंक्तियों को अलग करने के लिए एक नई लाइन इस्तेमाल होती है।
graduationFor('Hannah', 2022);
/* => "Congratulations Hannah!
Class of 2022"
*/
costOf(sign, currency) फंक्शन बनाइए, जो साइन की सामग्री रखने वाली एक स्ट्रिंग और मुद्रा दर्शाने वाली एक स्ट्रिंग लेता है।
साइन की बुनियादी कीमत दी गई मुद्रा में 20 है। इसके अलावा हर अक्षर की कीमत 2 है। (गणना में खाली जगहें भी शामिल हैं।)
जो वाक्य लौटाया जाता है, उसमें साइन बनाने की लागत लिखी होती है, जिसे दशमलव बिंदु के बाद दो अंकों के साथ लिखा जाता है और उसके बाद मुद्रा की स्ट्रिंग आती है।
costOf('Happy Birthday Rob!', 'dollars');
// => "Your sign costs 58.00 dollars."
Exercism पर साइन अप कीजिए और JavaScript को 37 कॉन्सेप्ट159 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।