7

मैं इस उदाहरण का सामना किया है और पूरी तरह से खो गया था ...जावास्क्रिप्ट console.log नई सुविधा 'कच्चे' के साथ?

const test = (hey) => console.log(hey); 

console.log(test `wtf`); 

सबसे पहले यह सब मान्य है, console.log में, यह

["wtf", raw: Array[1]] 

यह प्रतीत समारोह की तरह किया गया है निष्पादित और अतिरिक्त raw के साथ? क्या कोई समझा सकता है?

+0

'console.log (परीक्षण" डब्ल्यू ** एफ "); ' –

+1

https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/String/raw मुझे लगता है कि यह स्ट्रिंग टेम्पलर –

+4

टैग की गई टेम्पलेट स्ट्रिंग्स है: https://developer.mozilla.org/en- यूएस/डॉक्स/वेब/जावास्क्रिप्ट/संदर्भ/टेम्पलेट_लिटर # टैग की गईं_template_literals – deceze

उत्तर

5

यह सिर्फ Tagged Template Literal है। यह कल्पना दिखता है, लेकिन इसके बारे में कुछ भी खास नहीं है। नोट, वे ES6/ES2015 का हिस्सा हैं, इसलिए यदि आप पुराने ब्राउज़र का समर्थन करने की योजना बनाते हैं तो आपको उन्हें ट्रांस्पाइल करने की आवश्यकता होगी।

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

2

क्रेडिट @karmuran और

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_template_literals

कच्चे तार

@deceze विशेष कच्चे संपत्ति, टैग टेम्पलेट शाब्दिक के पहले समारोह तर्क पर उपलब्ध करने के लिए, का उपयोग करने की अनुमति देता कच्चे तारों के रूप में वे प्रवेश किया गया था।

function tag(strings, ...values) { 
    console.log(strings.raw[0]); 
    // "string text line 1 \n string text line 2" 
} 

tag`string text line 1 \n string text line 2`; 
संबंधित मुद्दे