السلاسل

يشير هذا المصطلح إلى أي مجموعة من الأحرف، مثل الأحرف والأرقام والرموز وما إلى ذلك، بين مجموعة من إما علامات الاقتباس المزدوجة (") أو علامات الاقتباس المفردة (') أو الفواصل العليا المائلة (`) هي مجموعة أساسية من سلسلة. لقد رأيت بالفعل بعض الأمثلة على السلاسل في الدورة التدريبية: احتوت مثيلات 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.

يشير هذا المصطلح إلى مثيل لنفس حرف التضمين ضمن السلسلة "Closes". الـ سلسلة، مما قد يتسبب في حدوث أخطاء:

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 قيمة محددة على قيمة حرفية للسلسلة.

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." }

الدمج

عند استخدامها في سياق السلاسل بدلاً من الأرقام، تكون علامة الجمع المفردة (+) يعمل كعامل تسلسل، حيث يجمع قيم سلسلة متعددة في قيمة 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.

يمكن أن تحتوي القيم الحرفية للنموذج على تعبيرات عناصر نائبة تحمل علامة الدولار ($). والأقواس المعقوفة (${}). هذه العناصر النائبة "مُدرَجة" بشكل افتراضي، مما يعني أن نتيجة التعبير تحل محل العنصر النائب في سلسلة.

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

يمكن تمرير قيمة حرفية للنموذج إلى دالة مخصّصة. لإنشاء نموذج يحمل علامة، وهو استدعاء دالة يستخدم نموذجًا واحدًا حرفيًا كمجموعة من الوسيطات ويسمح بتعبئة العناصر النائبة بناءً على الذي يحدده المؤلف.

تحتوي الوسيطة الأولى لدالة العلامة على صفيف من قيم السلاسل، وتحدِّد الوسائط المتبقية العناصر النائبة. تعتبر صفيفة قيم السلسلة هذه تم إنشاؤها بواسطة "تقسيم" القالب الحرفي في كل عنصر نائب يحتوي عليه. تشير رسالة الأشكال البيانية العنصر الأول في الصفيفة على أي أحرف حتى العنصر النائب الأول، والعنصر الثاني يحتوي على أي أحرف بين الأول والثاني والعناصر النائبة وما إلى ذلك. يتم تمرير كل عنصر نائب إلى دالة العلامة قيمة مستقلة مع عنصر نائب مرتبط.

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."

التحقق من فهمك

ما الحرف المستخدم لتخطي الأحرف؟

شرطة مائلة للخلف ()
علامة اقتباس مزدوجة (")
شرطة مائلة للأمام (/)

أي حرف يُستخدم للتسلسل؟

+
&
.