Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • JavaScript Documentation48টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • JavaScript কী?
  • Syntax & Comments
  • Variables
  • Data Types: Basics
  • Data Types: Conversion
  • Data Types: Advanced
  • Strings
  • Numbers & Math
  • Date & Time
  • Operators
  • Conditions
  • Loops
  • Functions: Basics
  • Functions: Intermediate
  • Functions: Advanced
  • Scope & Hoisting
  • Closures & this
  • ES6+ Modern
  • Arrays: Basics
  • Arrays: Intermediate
  • Arrays: Advanced
  • Objects: Basics
  • Objects: Intermediate
  • Objects: Advanced
  • Class: Basics
  • Class: Intermediate
  • Class: Advanced
  • DOM: Basics
  • DOM: Intermediate
  • DOM: Advanced
  • Events: Basics
  • Events: Intermediate
  • Events: Advanced
  • Async JavaScript
  • Promise
  • Async / Await
  • Fetch API
  • JSON
  • Modules
  • Browser Storage
  • Event Loop Deep
  • Prototype Chain
  • Iterators & Generators
  • WeakMap, WeakSet, Proxy
  • Error Handling
  • Practice Problems
  • Mini Projects
  • Basics
  • Functions & Scope
  • Types & Syntax
  • Arrays & Objects
  • Advanced
  • Functional Programming
  • Objects & Symbols
  • Async Deep Dive
  • Modern JavaScript
  1. Docs
  2. JavaScript
  3. প্রশ্ন/উত্তর
  4. Arrays & Objects
  5. Q20. What are template literals and tagged templates?
JavaScriptArrays & Objects

Q20. What are template literals and tagged templates?

Backtick দিয়ে string লেখা, expression বসানো আর custom tag function-এর সাথে কাজ।

Template literal হলো backtick চিহ্ন দিয়ে লেখা string — ES6-এ এসেছে। এতে string-এর ভিতরে সরাসরি expression বসানো যায় এবং একাধিক লাইনে লেখা যায়, তাই string জোড়া দিয়ে বানানোর দরকারই পড়ে না।

template literaljavascript
javascript
const name = "Rahim";
const age = 25;

// সাধারণ string জোড়া
const greeting1 = "হ্যালো, " + name + "!";

// template literal
const greeting2 = `হ্যালো, ${name}!`;

console.log(greeting2); // "হ্যালো, Rahim!"

// expression ও হিসাবও বসানো যায়
console.log(`আগামী বয়স: ${age + 1}`); // "আগামী বয়স: 26"

আরেকটি সুবিধা — বিশেষচিহ্ন ও লাইন ব্রেক লেখার জন্য ব্যাকশ্ল্যাশ লাগে না।

লাইন ব্রেক ও বিশেষচিহ্নjavascript
javascript
const line = `প্রথম লাইন
দ্বিতীয় লাইন`;

console.log(line); // দুই লাইনে ছাপবে

const html = `
  <div class="card">
    <p>এখানে লেখা যায়</p>
  </div>
`;

এখন থেকে string-এর ভিতরে লিখতে চাইলে backtick-এর আগে ব্যাকশ্ল্যাশ দিন — তাহলে ${name} লেখা থাকলেও JavaScript সেটাকে expression হিসেবে বোঝাবে না। HTML বা log লেখার সময় এটি কাজে লাগে।

লিখার বন্ধনী এড়ানোjavascript
javascript
const name = "Rahim";

console.log(`নাম: \${name}`); // "নাম: ${name}" — হিসাব হয়নি

// নিজে expression বানাতে চাইলে tagged template
function raw(strings, ...values) {
  return strings.raw.join("|") + " :: " + values.join(",");
}

console.log(raw`Hello ${name}`);

Tagged template হলো এমন ফাংশন যাকে template literal-এর আগে বসিয়ে লেখা হয়। ফাংশনটি string টুকরোগুলো আর expression-এর মান আলাদা করে পায়, ফলে নিজের মতো করে ফলত্র বানাতে পারে।

tagged templatejavascript
javascript
function highlight(strings, ...values) {
  return strings.reduce((out, part, i) => {
    const value = values[i - 1];
    return out + (i > 0 ? "[" + value + "]" : "") + part;
  });
}

const name = "Rahim";
const msg = highlight`Hello ${name}, welcome!`;

console.log(msg); // Hello [Rahim], welcome!

প্রথমে string টুকরোগুলো একটা array হিসেবে আসে, তারপর expression-এর মানগুলো আলাদা আলাদা আর্গুমেন্ট হয়ে আসে। ফাংশন চাইলে যেভাবে খুশি জোড়া লাগাতে পারে।

বৈশিষ্ট্যসাধারণ stringTemplate literal
চিহ্ন' বা \"backtick
expression বসানো+ দিয়ে${} দিয়ে
লাইন ব্রেকব্যবহারযোগ্য নয়সরাসরি লেখা যায়
HTML নিরাপত্তামান ঢোকে নামান ঢুকে যেতে পারে
ব্যবহারএক লাইনের stringবড় string, log, HTML
সতর্কতা

ব্যবহারকারীর দেওয়া মান সরাসরি template literal-এ বসালে XSS-এর ঝুঁকি তৈরি হয়। তাই innerHTML-এ বসানোর আগে মান escape বা sanitize করুন, অথবা textContent ব্যবহার করুন।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
Arrays & Objects বিভাগের আরও প্রশ্নJavaScript প্রশ্ন/উত্তর
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com