السلسلة النصية هي نوع البيانات في 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'