درس امروز آموزش جاوا اسکریپت درباره رشته ها است. نوع داده ای که تعدادی کاراکتر را بصورت رشته ای به هم پیوسته در خود نگه می دارد و به همین دلیل به رشته معروف شده است.
رشته ها در جاوا اسکریپت برای ذخیره و دستکاری متن استفاده می شوند.
رشته های جاوا اسکریپت
یک رشته جاوا اسکریپت از صفر و یا چندین کاراکتر که در داخل نقل قول نوشته شده است، تشکیل می شود.
شما می توانید از تک کوتیشن یا جفت کوتیشن استفاده کنید:
مثال
1 2 3 | var carName1 = "Volvo XC60"; // جفت کوتیشن var carName2 = 'Volvo XC60'; // تک کوتیشن |
شما می توانید نقل قول ها را درون یک رشته استفاده کنید، تا زمانی که با نقل قول های اطراف رشته مطابقت نداشته باشند:
مثال
1 2 3 | var answer1 = "It's alright"; var answer2 = "He is called 'Johnny'"; var answer3 = 'He is called "Johnny"'; |
طول رشته
طول رشته با استفاده از خصوصیت داخلی length
بدست می آید:
کاراکتر های ویژه
از آنجا که رشته ها باید در داخل نقل قول نوشته شوند، جاوا اسکریپت این رشته را اشتباه درک می کند:
1 | var x = "We are the so-called "Vikings" from the north."; |
رشته به صورت “We are the so-called ” شکسته می شود.
برای جلوگیری از این مشکل، از کاراکتر بَک اِسلَش استفاده می شود.
کاراکتر بک اسلش (\
) ، کاراکتر های ویژه را به کاراکتر های معمولی درون رشته تبدیل می کند:
کُد | نتیجه | توضیحات |
---|---|---|
\’ | ‘ | تک کوتیشن |
\” | “ | جفت کوتیشن |
\\ | \ | بک اسلش |
کد \"
یک جفت کوتیشن را در رشته وارد میکند:
کد \'
یک تک کوتیشن را در رشته وارد میکند:
کد \\
یک بک اسلش را در رشته وارد میکند:
۶ کاراکتر کنترلی دیگری که در جاوا اسکریپت معتبر هستند:
کد | نتیجه |
---|---|
\b | بک اسپیس |
\f | Form Feed |
\n | ایجاد خط جدید |
\r | شبیه سازی کلید اینتر |
\t | تب افقی |
\v | تب عمودی |
۶ کاراکتر کنترلی بالا در ابتدا برای کنترل ماشین های تایپی و دستگاه های فکس طراحی شده بودند و هیچ معنایی در HTML ندارند.
شکستن خطوط کد طولانی
برای خوانایی بهتر، برنامه نویسان اغلب از نوشتن خطوط کد بیش از ۸۰ کاراکتر خودداری میکنند.
اگر یک دستور جاوا اسکریپت در یک خط جا نمی شود، بهترین مکان برای شکستن آن بعد از یک عملگر است:
شما همچنین می توانید یک خط کد را با یک بک اسلش درون یک رشته متن بشکنید:
استفاده از \
روش مناسبی نیست. چون ممکن است پشتیبانی جهانی نداشته باشد.
برخی از مرورگر ها اجازه قرار دادن فضای خالی پشت کاراکتر \
را نمی دهند.
یک روش مناسب برای شکستن یک رشته، استفاده از جمع رشته ها است:
شما نمیتوانید یک خط کد را با یک بک اسلش بشکنید:
رشته ها می توانند شیء باشند
به طور معمول، رشته های جاوا اسکریپتی مقادیر ابتدایی هستند که از ثابت ها ساخته شده اند:
var firstName = "John";
اما رشته ها همچنین می توانند به عنوان اشیاء با کلمه کلیدی new
تعریف شوند :
var firstName = new String("John");
مثال
1 2 3 4 5 | var x = "John"; var y = new String("John"); // typeof x will return string // typeof y will return object |
رشته ها را به عنوان اشیا تعریف نکنید. این کار سرعت اجرا را کاهش می دهد.
کلمه کلیدی new
کد را پیچیده می کند و می تواند نتایج غیر منتظره ای ایجاد کند:
وقتی از عملگر ==
استفاده میکنید، رشته های یکسان برابر هستند:
مثال
1 2 3 4 5 | var x = "John"; var y = new String("John"); // (x == y) is true because x and y have equal values |
وقتی از عملگر ===
استفاده میکنید، رشته های یکسان، برابر نیستند. زیرا اپراتور ===
انتظار دارد که برابری در نوع و مقدار باشد.
مثال
1 2 3 4 5 6 | var x = "John"; var y = new String("John"); // (x === y) is false because x and y have different types (string and object) |
یا حتی بدتر اینکه، اشیاء قابل مقایسه نیستند:
مثال
1 2 3 4 5 6 | var x = new String("John"); var y = new String("John"); // (x == y) is false because x and y are different objects |
مثال
1 2 3 4 5 6 | var x = new String("John"); var y = new String("John"); // (x === y) is false because x and y are different objects |
به تفاوت بین (x==y)
و (x===y)
توجه داشته باشید.
مقایسه دو شیء جاوا اسکریپت همیشه مقدار false
را برمی گرداند.
منبع : W3Schools.com
درس بعدی : توابع رشته ای در جاوا اسکریپتدرس قبلی : رویداد ها در جاوا اسکریپت