درس 5 از 24

رشته در JavaScript چیست؟ آموزش String و مفهوم تغییرناپذیری رشته‌ها

بخش: مقدمه ای بر رشته ها در جاوا اسکریپت

در جاوا اسکریپت، رشته (string) دنباله‌ای از کاراکترها است که برای نمایش داده‌های متنی استفاده می‌شود. رشته‌ها یکی از نوع‌های داده اولیه (primitive data types) در این زبان هستند، در کنار اعداد، بولی‌ها، null و undefined.

برای ساختن یک رشته در جاوا اسکریپت، می‌توانید از کوتیشن تکی (') یا کوتیشن دوتایی (") استفاده کنید.

در اینجا مثالی از ساختن دو متغیر که مقادیر رشته‌ای را نگه می‌دارند آورده شده است:

let singleQuotes = 'This is a string';
console.log(singleQuotes);

let doubleQuotes = "This is also a string";
console.log(doubleQuotes);

با اینکه می‌توانید از کوتیشن تکی یا دوتایی برای ساختن رشته‌ها استفاده کنید، مهم است که ثابت‌قدم و یکدست باشید. اگر یک رشته با کوتیشن تکی شروع شود، باید با کوتیشن تکی هم پایان یابد.

همین موضوع برای کوتیشن دوتایی هم صدق می‌کند. مثال زیر باعث ایجاد خطا می‌شود، چون با کوتیشن دوتایی شروع شده و با کوتیشن تکی پایان یافته است:

const improperStr = "Do not do this';

نکته دیگری که باید در نظر بگیرید این است که رشته‌ها تغییرناپذیر (immutable) هستند. در برنامه‌نویسی، تغییرناپذیری یعنی وقتی چیزی ساخته شد، دیگر نمی‌توان آن را تغییر داد. بنابراین، وقتی یک رشته ایجاد می‌کنید، نمی‌توانید کاراکترهای آن را مستقیماً تغییر دهید. در عوض، اگر بخواهید تغییری ایجاد کنید، باید یک رشته جدید بسازید.

در اینجا مثالی از اختصاص دادن یک رشته جدید به متغیر developer آمده است:

let developer = "Jessica";
console.log(developer);

developer = "Quincy";
console.log(developer);

از آنجا که رشته‌ها تغییرناپذیر هستند، نمی‌توانیم رشته اول را مستقیماً به‌روزرسانی کنیم. به همین دلیل است که یک رشته جدید به متغیر developer اختصاص می‌دهیم.

رشته‌ها بخش مهمی از برنامه‌نویسی هستند و در درس‌های آینده، تکنیک‌های پیشرفته‌تری برای کار با آن‌ها و استفاده کامل از توانایی‌هایشان برای ساخت اپلیکیشن‌های پویا و تعاملی یاد خواهید گرفت.


سوالات

کدام‌یک از موارد زیر نحو صحیح برای ساختن رشته‌ها در جاوا اسکریپت است؟

  • const str = <this is a string>
  • const str = [this is a string]
  • const str = "this is a string"
  • const str = //this is a string//

اگر یک رشته با کوتیشن تکی شروع شود و با کوتیشن دوتایی تمام شود چه اتفاقی می‌افتد؟

  • یک رشته معتبر ساخته می‌شود.
  • یک خطای نحوی (syntax error) رخ می‌دهد.
  • یک رشته با هر دو کوتیشن ساخته می‌شود.
  • توسط مفسر جاوا اسکریپت نادیده گرفته می‌شود.

چرا رشته‌ها در جاوا اسکریپت تغییرناپذیر در نظر گرفته می‌شوند؟

  • شما نمی‌توانید رشته‌ها را با استفاده از متغیرها ایجاد کنید.
  • وقتی یک رشته ساخته شد، نمی‌توانید کاراکترهای آن را مستقیماً تغییر دهید.
  • رشته‌ها فقط با استفاده از literalها قابل ایجاد هستند.
  • می‌توانید رشته‌ها را تغییر دهید، اما فقط از طریق متغیرهای سراسری.