টেক্সট ডেটা সংরক্ষণ করার জন্য JavaScript-এর ডেটা টাইপটিই হলো স্ট্রিং। একটি একক ক্যারেক্টারের জন্য আলাদা কোনো ডেটা টাইপ নেই।
টেক্সটকে সিঙ্গেল কোট বা ডাবল কোটের ভেতরে রেখে আপনি একটি স্ট্রিং লিটারাল তৈরি করেন। Exercism-এ সিঙ্গেল কোট ব্যবহার করা হয়।
'Hello, World!'
"Hello, World!"
টেক্সটের কিছু বিশেষ ক্যারেক্টারের আগে ব্যাকস্ল্যাশ \ বসাতে হয়, দেখুন MDN-এর এস্কেপ সিকোয়েন্স।
const text = 'I\'m having fun.\nWhat about you?';
console.log(text);
// => I'm having fun.
// => What about you?
সিঙ্গেল আর ডাবল কোট ছাড়াও, টেক্সটকে ব্যাকটিকের ভেতরে রেখেও আপনি একটি স্ট্রিং তৈরি করতে পারেন। এই সিনট্যাক্স ব্যবহার করে সিঙ্গেল বা ডাবল কোট, এমনকি নতুন লাইনও এস্কেপ করার প্রয়োজন ছাড়াই লেখা যায়। এটি এক্সপ্রেশন এমবেড করার সুবিধাও দেয়, আরও বিস্তারিত জানতে দেখুন টেমপ্লেট স্ট্রিং।
`A multi-line string
with 'single quotes'
and "double quotes"`;
একটি স্ট্রিংকে ক্যারেক্টারের তালিকা হিসেবে ধরা যায়, যেখানে প্রথম ক্যারেক্টারের ইনডেক্স 0.
তৃতীয় বন্ধনী আর যে অক্ষরটি আপনি পেতে চান তার ইনডেক্স ব্যবহার করে স্ট্রিংয়ের একটি নির্দিষ্ট ক্যারেক্টার পেতে পারেন।
এর বিকল্পে charAt মেথডও আছে।
'cat'[1];
// => 'a'
'cat'.charAt(2);
// => 't'
length প্রপার্টি ব্যবহার করে একটি স্ট্রিংয়ে কতটি ক্যারেক্টার আছে তা জানতে পারেন।
'cat'.length;
// => 3
স্ট্রিং কনক্যাটেনেট করার সবচেয়ে সহজ উপায় হলো যোগ অপারেটর + ব্যবহার করা।
'I like' + ' ' + 'cats.';
// => "I like cats."
স্ট্রিং অনেক সহায়ক মেথড দেয়, সম্পূর্ণ তালিকা দেখতে দেখুন স্ট্রিং মেথড নিয়ে MDN ডকস। নিচের তালিকায় কিছু বহুল ব্যবহৃত সহায়ক মেথড দেখানো হলো।
toUpperCase এবং toLowerCase: সব ক্যারেক্টারের কেস বদলে দেয়trim: শুরু আর শেষের হোয়াইটস্পেস মুছে দেয়includes, startsWith এবং endsWith: অন্য একটি স্ট্রিং প্রদত্ত স্ট্রিংয়ের অংশ কি না তা নির্ধারণ করেslice: স্ট্রিংয়ের একটি অংশ বের করে আনেউপরের মেথডগুলো প্রয়োগ করলে মূল স্ট্রিং কখনো বদলায় না। বরং একটি নতুন স্ট্রিং তৈরি হয় এবং রিটার্ন করা হয়। JavaScript-এ স্ট্রিং (আর অন্যান্য প্রিমিটিভ ডেটা টাইপ) ইমিউটেবল। এর মানে হলো, উপরে দেখানো বন্ধনী সিনট্যাক্স ব্যবহার করে কোনো ইনডেক্সে ভিন্ন একটি ক্যারেক্টার অ্যাসাইন করা যায় না (যেমনটা অ্যারেতে করা যায়)।
const str = 'cat';
str[1] = 'u'; // fails silently
console.log(str);
// => 'cat'