स्ट्रिंग

डबल कोटेशन मार्क ("), सिंगल कोटेशन मार्क (') या बैकटिक्स (`) के बीच में मौजूद अक्षरों, संख्याओं, सिंबल वगैरह का कोई भी सेट, स्ट्रिंग प्राइमिटिव होता है. आपने इस कोर्स में पहले ही, स्ट्रिंग के कुछ उदाहरण देख लिए हैं: पिछले मॉड्यूल में console.log के उदाहरणों में स्ट्रिंग प्राइमिटिव शामिल थे.

console.log( "Hello, World." );
> Hello, World.

"Hello, World." एक स्ट्रिंग प्राइमिटिव है. आपको सिंगल कोट या बैकटिक का इस्तेमाल करके भी यही नतीजा मिलता है:

console.log( 'Hello, World.' );
> Hello, World.

console.log(`Hello, World.`);
> Hello, World.

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

console.log( "I'm a string." );
> I'm a string.

console.log( '"A string," I said.' );
> "A string," I said.

स्ट्रिंग में मौजूद, कोटेशन मार्क के एक ही उदाहरण से स्ट्रिंग "बंद" हो जाती है. इससे गड़बड़ियां हो सकती हैं:

console.log( '"I'm a string," I said.' );
> Uncaught SyntaxError: missing ) after argument list

इससे बचने के लिए, बैकस्लैश (\) का इस्तेमाल करके वर्ण को एस्केप करें:

console.log( '"I\'m a string," I said.' );
> "I'm a string," I said.

स्ट्रिंग ऑब्जेक्ट

फ़ंक्शन के तौर पर कॉल किए जाने पर, String ऑब्जेक्ट किसी तय वैल्यू को स्ट्रिंग लिटरल में बदल देता है.

let myString = String( 10 );

myString
> "10"

typeof myString
> string

प्रोटोटाइपल इनहेरिटेंस में बताए गए तरीके के मुताबिक, आपको String ऑब्जेक्ट को कन्स्ट्रक्टर के तौर पर इस्तेमाल करने की ज़रूरत शायद ही कभी पड़े. यह स्ट्रिंग ऑब्जेक्ट बनाता है, जिसमें तय की गई वैल्यू के साथ-साथ, String ऑब्जेक्ट के पहले से मौजूद तरीकों और प्रॉपर्टी भी शामिल होती हैं.

let stringObj = new String( "My new string." );

typeof stringObj
> object

stringObj
> String { "My new string." }

स्ट्रिंग जोड़ना

संख्याओं के बजाय स्ट्रिंग के संदर्भ में इस्तेमाल किए जाने पर, एक प्लस साइन (+) एक कॉन्कैनेटेशन ऑपरेटर के तौर पर काम करता है. यह एक से ज़्यादा स्ट्रिंग वैल्यू को एक स्ट्रिंग में जोड़ता है:

console.log( "My" + " string." );
> My string.

स्ट्रिंग लिटरल और टेंप्लेट लिटरल

स्ट्रिंग प्राइमिटिव बनाने के लिए, सिंगल कोट, डबल कोट, और बैकटिक का इस्तेमाल एक-दूसरे के साथ किया जा सकता है. हालांकि, बैकटिक का इस्तेमाल करके भी टेंप्लेट लिटरल (जिन्हें कभी-कभी "टेंप्लेट स्ट्रिंग" भी कहा जाता है) तय किए जा सकते हैं. सिंगल या डबल कोट से बनाई गई स्ट्रिंग लिटरल के मुकाबले, टेंप्लेट लिटरल में कई लाइन वाली स्ट्रिंग और स्ट्रिंग इंटरपोलेशन की सुविधा मिलती है.

const myString = "This
is a string.";
> Uncaught SyntaxError: "" string literal contains an unescaped line break

const myString = `This
is a string.`;

console.log( myString );

> This
is a string.

टेंप्लेट लिटरल में, डॉलर साइन और कर्ली ब्रैकेट (${}) से मार्क किए गए प्लेसहोल्डर एक्सप्रेशन हो सकते हैं. ये प्लेसहोल्डर डिफ़ॉल्ट रूप से "इंटरपलेट" होते हैं. इसका मतलब है कि एक्सप्रेशन का नतीजा, फ़ाइनल स्ट्रिंग में प्लेसहोल्डर की जगह ले लेता है.

console.log( "The result is " + ( 2 + 4 ) + "." );
> The result is 6.
console.log( `The result is ${ 2 + 4 }.` );
> The result is 6.

टैग किया गया टेंप्लेट बनाने के लिए, टेंप्लेट लिटरल को कस्टम फ़ंक्शन में पास किया जा सकता है. यह एक ऐसा फ़ंक्शन कॉल है जो आर्ग्युमेंट के सेट के तौर पर एक टेंप्लेट लिटरल का इस्तेमाल करता है. साथ ही, लेखक के तय किए गए लॉजिक के आधार पर, इसके प्लेसहोल्डर को पॉप्युलेट करने की अनुमति देता है.

टैग फ़ंक्शन के पहले आर्ग्युमेंट में स्ट्रिंग वैल्यू का कलेक्शन होता है. बाकी आर्ग्युमेंट, प्लेसहोल्डर तय करते हैं. स्ट्रिंग वैल्यू का यह कलेक्शन, टेंप्लेट लिटरल को उसके हर प्लेसहोल्डर पर "अलग-अलग हिस्सों में बांटकर" बनाया जाता है. कलेक्शन के पहले एलिमेंट में, पहले प्लेसहोल्डर तक के सभी वर्ण होते हैं. दूसरे एलिमेंट में, पहले और दूसरे प्लेसहोल्डर के बीच के सभी वर्ण होते हैं. इसी तरह, आगे भी होता है. हर प्लेसहोल्डर को टैग फ़ंक्शन में, उससे जुड़े प्लेसहोल्डर के साथ, स्टैंडअलोन वैल्यू के तौर पर पास किया जाता है.

const myNoun = "template literal";

function myTagFunction( myStrings, myPlaceholder ) {
    const myInitialString = myStrings[ 0 ];
    console.log( `${ myInitialString }modified ${ myPlaceholder }.` );
}

myTagFunction`I'm a ${ myNoun }.`;
> "I'm a modified template literal."

देखें कि आपको क्या समझ आया

वर्ण को बाहर रखने के लिए किस वर्ण का इस्तेमाल किया जाता है?

बैकस्लैश ()
डबल कोट (")
फ़ॉरवर्ड स्लैश (/)

स्ट्रिंग को जोड़ने के लिए किस वर्ण का इस्तेमाल किया जाता है?

+
&
.