رش

رشته در JavaScript

38 تمرین

درباره‌ی رشته

«رشته» نوع داده‌ی جاوااسکریپت برای ذخیره‌ی داده‌های متنی است. نوع داده‌ی جداگانه‌ای برای یک نویسه‌ی تکی وجود ندارد.

ساخت یک رشته

برای ساخت یک رشته‌ی لیترال، متن را درون گیومه‌های تکی یا دوتایی قرار می‌دهید. در 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: استخراج بخشی از رشته

رشته تغییرناپذیر است

اعمال متدهای بالا هرگز رشته‌ی اصلی را تغییر نمی‌دهد. در عوض، یک رشته‌ی جدید ساخته و برگردانده می‌شود. رشته (و سایر انواع داده‌ی اولیه) در جاوااسکریپت تغییرناپذیر است. این یعنی همچنین نمی‌توانید با استفاده از نحوه‌ی نگارش کروشه‌ای که بالا نشان داده شد، نویسه‌ی دیگری را در یک اندیس خاص اختصاص دهید (کاری که در آرایه‌ها انجام می‌دهید).

const str = 'cat';
str[1] = 'u'; // fails silently
console.log(str);
// => 'cat'
ویرایش از طریق GitHub این پیوند در پنجره یا زبانه‌ی جدیدی باز می‌شود

رشته را یاد بگیرید

تمرین کردن قفل شده است

برای تمرین رشته قفل 1 تمرین دیگر را باز کنید