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-এর মতো একই শর্তভিত্তিক কার্যকারিতা দেয়।
টেমপ্লেট স্ট্রিং সিনট্যাক্সে লজিক যোগ করতে:
const grade = 95;
`You have ${grade > 90 ? 'passed' : 'failed'} the exam.`;
// => You have passed the exam.