آشنایی با دیتا تایپ استرینگ در زبان برنامه نویسی جاوا اسکریپت


String (استرینگ یا داده ها و عبارات متنی) می توانند شامل هر کاراکتری باشند:

- حروف
- اعداد
- علامت های نگارشی (مثل کاما و نقطه و ... )
- کاراکترهای خاص که برای نوشتن آن ها، یک Backslash ( \ ) قبل از آن ها گذاشته می شود.

در پاسخ به این سوال که منظور از کاراکترهای خاص چیست؟ بایستی به این نکته اشاره کرد که برخی از کاراکترها مثل کوتیشن ها، دارای معنی خاصی در زبان جاوا اسکریپت هستند و برای آن که بتوانیم از آن ها در داخل استرینگ ها استفاده کنیم، می بایست آن ها را به شکل خاصی مورد استفاده قرار دهیم. به این کاراکترها، Special Characters یا کاراکترهای خاص گفته می شود. جدول زیر، لیست کاراکترهای خاصی که می توانیم از آن ها در داخل استرینگ های جاوا اسکریپت استفاده کنیم را نشان می دهد:

کد خروجی
\' سینگل کوتیشن
\" دابل کوتیشن
\\ استفاده از خود کاراکتر Backslash در داخل متن
\n ایجاد خط جدید
\r نشانه گر را به ابتدای خط باز می گرداند
\t ایجاد فاصله به اندازه ی یک Tab (معمولاً 4 فاصله)
\b Backspace (بَک اسپِیس)

برای ساخت یک متغیر از جنس استرینگ، فقط کافی است که متن خود را در داخل دو سینگل کوتیشن (' ') یا دابل کوتیشن (" ") قرار دهیم. مثلاً:

var myString = "Hello, I'm a string."

در حقیقت، فرقی نمی کند که استرینگ خود را بین سینگل کوتیشن ها قرار دهیم یا دابل کوتیشن ها. فقط باید حواسمان باشد که کوتیشن های ابتدایی و انتهایی از یک نوع باشند.

اگر استرینگ مد نظر را در میان سینگل کوتیشن ( ' ) قرار دهیم، آن وقت می توانیم درون خود استرینگ از دابل کوتیشن ( " ) استفاده کنیم، بدون آن که مشکلی پیش بیاید. برعکس این موضوع نیز صحت دارد؛ اگر استرینگ را در میان دابل کوتیشن ها قرار دهیم، در متن خود می توانیم از سینگل کوتیشن ها استفاده کنیم؛ درست همانند مثال بالا که کل استرینگ در بین دابل کوتیشن ها قرار گرفته و عبارت «I'm» بدون هیچ مشکلی و با استفاده از سینگل کوتیشن در داخل متن وجود دارد.

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

فرار از دست کوتیشن ها!
اما اگر بخواهیم در یک متن، هم از سینگل کوتیشن و هم از دابل کوتیشن استفاده کنیم چطور؟ خوشبختانه برای این کار نیز راه حلی وجود دارد.

فرض کنید که استرینگ خود را در میان دابل کوتیشن ها (") قرار داده ایم و می خواهیم درون متن نیز یک جمله ی نقل قول با استفاده از همان کوتیشن ها بیان کنیم. در چنین شرایطی، برای فرار از مشکل خطای جاوا اسکریپت، قبل از کوتیشن های درون متن، یک backslash یا بهتر بگوییم \ می گذاریم تا بدین ترتیب جاوا اسکریپت متوجه شود که کوتیشن های درون استرینگ، مربوط به خود متن بوده و به معنای پایان استرینگ نیستند:

var myQuote = "A wise man once said: \"Don't waste your life thinking what others think about you\". True Words!";
alert (myQuote);

اگر کد بالا را در کنسول جاوا اسکریپت کروم اجرا کنید، خواهید دید که پیام بدون هیچ خطایی اجرا خواهد شد. حال می توانید یکی از Backslash ها را حذف کرده و نتیجه را مشاهده کنید. به کاری که الان انجام دادیم، یعنی استفاده از Backslash برای جلوگیری از بروز خطا در استرینگ ها، Escaping Quotes می گویند.

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

()charAt: کاراکتری که در یک مکان مشخص وجود دارد را بر می گرداند. توجه کنید که شمارش کاراکترها از 0 شروع می شود:

var littleString = 'JavaScript is Fun!';
littleString.charAt(4);
//returns "S"

همان طور که گفتیم، شمارش کاراکترها از 0 شروع می شود، پس در کلمه ی اولی یعنی JavaScript، حرف «J» دارای شماره ی 0، حرف «a» دارای شماره ی 1، حرف «v» دارای شماره ی 2 و ... است.

با کمی دقت متوجه می شویم که برای به کار بردن این فانکشن ها، باید ابتدا متغیر را تعریف کنیم و سپس با استفاده از نام متغیر و یک نقطه ( . )، فانکشن ()charAt را اصطلاحا Call کنیم یا «صدا» بزنیم. پس از این کار، می توانیم با استفاده از آن فانکشن و مقدار درون آن، بر روی متغیر تعییرات ایجاد کنیم.

()concat: نام این فانکشن از واژه ی Concatenate به معنی «الحاق» گرفته شده است. این فانکشن یک یا چند استرینگ را با هم الحاق کرده و یا به اصطلاح "می چسباند":

var littleString = 'JavaScript is Fun!';
littleString.concat(' We love JavaScript!');
//returns "JavaScript is Fun! We love JavaScript!"

()indexOf: در استرینگ جستجو کرده و اولین خانه ای که عبارت جستجو شده در آن رخ داده را نمایش می دهد:

var littleString = 'JavaScript is Fun!';
littleString.indexOf('Fun');
//returns 14

در فانکشن اول گفتیم که شماره ی کاراکترها از 0 شروع می شود. این شماره ها که مکان عناصر را مشخص می کنند -چه عدد باشند، چه متن و ...- در زبان برنامه نویسی Index (ایندِکس یا اندیس) نام دارند. زمانی که این مفاهیم را بشناسیم، دیگر نیازی به حفظ کردن این فانکشن ها نیست چرا که نام این فانکشن، خودش گویای کاربردش هست. در ضمن توجه داشته باشیم که عملکرد این فانکشن به گونه یی است که اسپیس ها یا فواصل را نیز مد نظر قرار می دهد.

()split: استرینگ را به آرایه یا مجموعه ای از استرینگ های کوچک تر (Substring، ساب استرینگ) تبدیل می کند. البته کاراکتری که در این فانکشن مورد استفاده قرار می گیرد، خودش از آرایه ی نهایی حذف می شود:

var littleString = 'JavaScript is Fun!';
littleString.split('F');
//returns ["JavaScript is ", "un!"]

حالا فرض کنید که می خواهیم برای فانکشن ()split از کاراکتر اسپیس یا فاصله استفاده کنیم که در میان کلمات استرینگ ما وجود دارد. همانطور که گفته شد، خود کاراکتر مورد هدف (یعنی اسپیس) حذف می شود. نکته ی دیگری که در اینجا وجود دارد، آن است که در این استرینگ، دو کاراکتر اسپیس وجود دارد، یکی میان "JavaScript" و "is" و دیگری میان "is" و "!Fun". اگر کاراکتر اسپیس را در فانکشن ()split به کار ببریم، جاوا اسکریپت تمامی مواردی که از آن کاراکتر یا عبارت را پیدا کند، در فانکشن به کار خواهد گرفت، نه فقط مورد اول را:

var littleString = 'JavaScript is Fun!';
littleString.split(' ');
//returns ["JavaScript", "is", "Fun!"]

()substr: بخشی از استرینگ را جدا کرده و یک استرینگ کوچک تر (Substring، ساب استرینگ) تولید می کند. این فانکشن به دو مقدار نیاز دارد؛ یکی مکان شروع برای جدا کردن و دیگری طول ساب استرینگی که باید جدا شود:

var littleString = 'JavaScript is Fun!';
littleString.substr(4,6);
//returns "Script"

همانطور که می بینیم، عدد اول در فانکشن، مکان شروع برای عملیات جداسازی را تعیین می کند. در اینجا ایندکس 4 به مکان کاراکتر "S" اشاره می کند (ایندکس ها از شماره ی 0 شروع می شوند.) سپس فانکشن از ما می خواهد که طول ساب استرینگی که باید جدا کند را وارد کنیم؛ عدد دوم یعنی 6 به فانکشن می گوید که از خانه ی 4، به میزان 6 خانه جدا کن. نتیجه ی نهایی عبارت "Script" خواهد بود.

()substring: بخشی از یک استرینگ که در میان دو ایندکس مشخص قرار دارند را جدا می کند:

var littleString = 'JavaScript is Fun!';
littleString.substring(3,6);
//returns "aSc"

در اینجا، عدد اولی که در فانکشن ()substring قرار دادیم -3- مکان کاراکتر «a» را مشخص می کند؛ عدد دوم یعنی 6 نیز مکان کاراکتر «r» را مشخص می کند. حال فانکشن ()substring عبارتی که میان این دو مکان وجود دارد را جدا کرده و آن را به صورت یک ساب استرینگ -یا تکه ای از یک استرینگ بزرگ تر- نمایش می دهد. با کمی دقت هم متوجه می شویم که با وجود استفاده از مکان کاراکتر دوم -r- که ایندکس 6 را دارد، خود کاراکتر در نتیجه نهایی آورده نمی شود و ساب استرینگ نهایی تا ابتدای آن ایندکس حساب می شود.

()toLowerCase: استرینگ مورد نظر را گرفته و تمامی حروف آن را به حروف کوچک تبدیل می کند:

var littleString = 'JavaScript is Fun!';
littleString.toLowerCase();
//returns javascript is fun!

()toUpperCase: تمامی حروف استرینگ را به حروف بزرگ تبدیل می کند:

var littleString = 'JavaScript is Fun!';
littleString.toUpperCase();
//returns JAVASCRIPT IS FUN!
لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
کاربر میهمان
کاربر میهمان
واقعا عالی توضیح دادن
کاربر میهمان
کاربر میهمان
این دستورات در کجای وب مورد استفاده قرار میگیره؟؟؟
یا چه کمکی به ما در برنامه نویسی وب میکنه؟؟؟