जावास्क्रिप्ट में एक स्ट्रिंग में $ {} (डॉलर चिह्न और घुंघराले ब्रेसिज़) का क्या अर्थ है?


160

मैंने यहाँ या एमडीएन पर कुछ भी नहीं देखा है। मुझे यकीन है कि मुझे कुछ याद आ रहा है। वहाँ कहीं इस पर कुछ प्रलेखन हो गया है?

कार्यात्मक रूप से, ऐसा लगता है कि यह आपको एक स्ट्रिंग के अंदर एक चर को घोंसले में डालने की अनुमति देता है बिना का उपयोग किए हुए + ऑपरेटर । मैं इस सुविधा पर प्रलेखन की तलाश कर रहा हूं।

उदाहरण:

var string = 'this is a string';

console.log(`Insert a string here: ${string}`);


क्या आप इसके बारे में कुछ संदर्भ दे सकते हैं? यह प्रश्न स्पष्ट नहीं है जैसा लिखा गया है।
सैम हैली


5
यह एक बुरा सवाल नहीं है। यह एक नई विशेषता है, और मुझे यकीन है कि एसओ पर एक डुप्लिकेट नहीं मिल सकता है, हालांकि वास्तव में जो देखा गया था उसका एक उदाहरण अच्छा रहा होगा।

@ स्क्विंट-सहमत हैं, लेकिन स्रोत के लिए नमूना कोड और संदर्भ सहायक होता।
रोबग

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

जवाबों:


192

आप टेम्पलेट शाब्दिक के बारे में बात कर रहे हैं

वे मल्टीलाइन स्ट्रिंग्स और स्ट्रिंग इंटरपोलेशन दोनों के लिए अनुमति देते हैं।

मल्टीलाइन स्ट्रिंग्स:

console.log(`foo
bar`);
// foo
// bar

स्ट्रिंग प्रक्षेप:

var foo = 'bar';
console.log(`Let's meet at the ${foo}`);
// Let's meet at the bar


67
एक चीज जिसने मुझे लंबे समय तक भ्रमित किया, वह यह है कि टेम्पलेट शाब्दिक बैकटेक का उपयोग करता है, जो कीबोर्ड पर "1" के बाईं ओर है, बजाय एकल उद्धरण चिह्न (') के।
सिडनी

19
कूल: आप "इंजेक्ट" कोड भी कर सकते हैं:console.log(`Your array:\n ${arr.join('\n ')}`)
T4NK3R

5
यह अजीब है कि Template LiteralIE में समर्थित नहीं है या शायद यह IE के लिए स्वाभाविक है कि ठंडी चीजों का समर्थन न करें। और पढ़ें
मोहम्मद मुसावी

12

जैसा कि ऊपर एक टिप्पणी में उल्लेख किया गया है, आप टेम्प्लेट स्ट्रिंग्स / शाब्दिक के भीतर अभिव्यक्ति कर सकते हैं। उदाहरण:

const one = 1;
const two = 2;
const result = `One add two is ${one + two}`;
console.log(result); // output: One add two is 3


क्या यह कहना सही है कि स्ट्रिंग में कोड इंजेक्ट करने के लिए टेम्पलेट स्ट्रिंग्स का उपयोग किया जा सकता है?
carloswm85

आप भावों को इंजेक्ट कर रहे हैं और अभिव्यक्ति कोड हैं। आप किसी भी प्रकार के कोड को इंजेक्ट नहीं कर सकते हैं, हालाँकि, केवल जावास्क्रिप्ट एक्सप्रेशन।
जोएल एच।

मैं और अधिक विशिष्ट बनने की कोशिश करूंगा। स्ट्रिंग शाब्दिक का उपयोग करते समय मैं $ {} संकेतन का उपयोग करके किसी भी स्ट्रिंग को obj.value की तरह अभिव्यक्त कर सकता हूं । सही?
carloswm85

हां, और आप इसे कंसोल में अपने लिए आज़मा सकते हैं, जैसेhey ${obj.name}
जोएल एच।

0

आप टेम्पलेट शाब्दिक के साथ इंप्लिकेंट टाइप कन्वर्सेशन भी कर सकते हैं। उदाहरण:

let fruits = ["mango","orange","pineapple","papaya"];

console.log(`My favourite fruits are ${fruits}`);
// My favourite fruits are mango,orange,pineapple,papaya
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.