رشته های

هر مجموعه ای از کاراکترها - حروف، اعداد، نمادها و غیره - بین مجموعه‌ای از علامت‌های نقل‌قول دوتایی ( " )، گیومه‌های تکی ( ' ) یا بک تیک‌ها (') یک رشته ابتدایی است. شما قبلاً یک چند نمونه از رشته ها در این دوره: نمونه های console.log در ماژول قبلی حاوی رشته های اولیه بودند.

console.log( "Hello, World." );
> Hello, World.

"Hello, World." یک رشته ابتدایی است. شما همان نتیجه را با نقل قول های تک یا بکتیک بدست می آورید:

console.log( 'Hello, World.' );
> Hello, World.

console.log(`Hello, World.`);
> Hello, World.

به مجموعه ای از کاراکترهای محصور شده در گیومه ، رشته لفظی گفته می شود. نقل‌قول‌های دوتایی و تکی به یک شکل عمل می‌کنند و یکی می‌تواند دیگری را به‌عنوان کاراکتری در خود رشته داشته باشد:

console.log( "I'm a string." );
> I'm a string.

console.log( '"A string," I said.' );
> "A string," I said.

نمونه‌ای از همان کاراکتر محصور در رشته، رشته را می‌بندد و احتمالاً باعث ایجاد خطا می‌شود:

console.log( '"I'm a string," I said.' );
> Uncaught SyntaxError: missing ) after argument list

برای جلوگیری از این امر، با استفاده از بک اسلش (``) از شخصیت فرار کنید:

console.log( '"I\'m a string," I said.' );
> "I'm a string," I said.

شی رشته

هنگامی که به عنوان یک تابع فراخوانی می شود، شی String یک مقدار مشخص را به یک رشته literal وادار می کند.

let myString = String( 10 );

myString
> "10"

typeof myString
> string

همانطور که در وراثت نمونه اولیه توضیح داده شده است، به ندرت نیاز به استفاده از شی String به عنوان سازنده خواهید داشت. یک شی رشته حاوی مقدار مشخص شده، در کنار روش‌ها و ویژگی‌هایی که قبلاً توسط شی String ارائه شده است، به جای یک رشته واقعی ایجاد می‌کند.

let stringObj = new String( "My new string." );

typeof stringObj
> object

stringObj
> String { "My new string." }

الحاق

هنگامی که در زمینه رشته ها به جای اعداد استفاده می شود، یک علامت مثبت منفرد ( + ) به عنوان یک عملگر الحاقی عمل می کند و چندین مقدار رشته را در یک رشته واحد ترکیب می کند:

console.log( "My" + " string." );
> My string.

حروف الفبای رشته ای و لفظ الفبای الگو

نقل‌قول‌های تک، نقل‌قول‌های دوگانه و بک‌تیک‌ها می‌توانند به جای یکدیگر برای ایجاد رشته‌های ابتدایی استفاده شوند. با این حال، می‌توانید از بک‌تیک‌ها برای تعیین حروف الفبای الگو (که گاهی اوقات «رشته‌های الگو» نامیده می‌شود) استفاده کنید. برخلاف حروف الفبای رشته ای که توسط نقل قول های تکی یا دوگانه ایجاد می شوند، لفظ های قالب امکان رشته های چند خطی و درون یابی رشته ها را فراهم می کنند.

const myString = "This
is a string.";
> Uncaught SyntaxError: "" string literal contains an unescaped line break

const myString = `This
is a string.`;

console.log( myString );

> This
is a string.

حروف الفبای الگو می تواند حاوی عبارات نگهدارنده باشد که با علامت دلار و پرانتزهای فرفری ( ${} ) مشخص شده اند. این متغیرها به طور پیش فرض "interpolated" هستند، به این معنی که نتیجه عبارت جایگزین مکان نگهدار در رشته نهایی می شود.

console.log( "The result is " + ( 2 + 4 ) + "." );
> The result is 6.
console.log( `The result is ${ 2 + 4 }.` );
> The result is 6.

یک template literal می‌تواند به یک تابع سفارشی برای ایجاد یک الگوی برچسب‌گذاری شده ارسال شود، یک فراخوانی تابعی که از یک الگوی واقعی به عنوان مجموعه‌ای از آرگومان‌ها استفاده می‌کند و به متغیرهای آن اجازه می‌دهد بر اساس منطق تعریف‌شده توسط نویسنده پر شوند.

آرگومان اول یک تابع تگ حاوی آرایه ای از مقادیر رشته ای است و آرگومان های باقیمانده جایگاه ها را تعریف می کنند. این آرایه از مقادیر رشته ای با "تقسیم" تحت اللفظی الگو در هر محل نگهدارنده ای که در آن قرار دارد ایجاد می شود. عنصر اول در آرایه شامل هر کاراکتری تا جایگاه اول است، عنصر دوم شامل هر کاراکتر بین جای‌بان اول و دوم و غیره است. هر مکان نگهدار به عنوان یک مقدار مستقل با یک مکان نگهدار مرتبط به تابع برچسب منتقل می شود.

const myNoun = "template literal";

function myTagFunction( myStrings, myPlaceholder ) {
    const myInitialString = myStrings[ 0 ];
    console.log( `${ myInitialString }modified ${ myPlaceholder }.` );
}

myTagFunction`I'm a ${ myNoun }.`;
> "I'm a modified template literal."

درک خود را بررسی کنید

کدام شخصیت برای فرار از شخصیت ها استفاده می شود؟

اسلش معکوس ( )
یک نقل قول دوگانه ( " )
اسلش رو به جلو ( / )

کدام کاراکتر برای الحاق استفاده می شود؟

+
&
.