رشته های متنی در جاوا اسکریپت

از ویکی کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
JavaScript-menu.png
موارد آموزشی
فرم‌ها در جاوا اسکریپت
اشیاء در جاوا اسکریپت
تابع در جاوا اسکریپت
HTML DOM در جاوا اسکریپت
Browser BOM در جاوا اسکریپت
AJAX در جاوا اسکریپت
JSON در جاوا اسکریپت
جی‌کوئری در برابر جاوا اسکریپت
مثال‌های جاوا اسکریپت
مرجع جاوا اسکریپت

رشته‌های متنی در جاوا اسکریپت برای ذخیره و ویرایش متن‌ها استفاده می‌شوند. [۱]

رشته‌ها در جاوا اسکریپت

یک رشتهٔ متنی در جاوا اسکریپت از صفر تا کاراکترهای بیشتری را در زمانیکه داخل کوتیشن «' یا "» نوشته می‌شود در بر می‌گیرد.

مثال

var x = "John Doe";

شما می‌توانید از تک کوتیشن ' یا دو کوتیشن " استفاده کنید:

مثال

1 var carName1 = "Volvo XC60"; // Double quotes
2 var carName2 = 'Volvo XC60'; // Single quotes

شما می‌توانید از کوتیشن‌ها درون یک رشتهٔ متنی استفاده کنید، البته به شرطی که کوتیشنی که درون رشتهٔ متنی استفاده می‌کنید با کوتیشنی که رشتهٔ متنی درون آن قرار گرفته همخوانی نداشته باشد:

مثال

1 var answer1 = "It's alright";
2 var answer2 = "He is called 'Johnny'";
3 var answer3 = 'He is called "Johnny"';


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

برای پیدا کردن طول یک رشتهٔ متنی، از ویژگیlengthاستفاده کنید:

مثال

1 var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
2 var sln = txt.length;


Escape کردن کاراکترها

از آنجایی که رشته‌های متنی می‌بایست درون کوتیشن‌ها نوشته شوند، جاوا اسکریپت رشتهٔ متنی زیر را درست درک نمی‌کند:

var x = "We are the so-called "Vikings" from the north.";

رشتهٔ متنی فوق به "We are the so-called " خلاصه خواهد شد.

راه حل این مشکل استفاده از کاراکتر بک‌اسلش «\» قبل از کاراکتر است.

کاراکتر بک‌اسلش «\» موجب می‌شود که کاراکترهای به خصوص، همانند کوتیشن به کاراکترهای متنی یا رشته‌ای تبدیل شوند:

کد نتیجه توضیحات
\' تک کوتیشن
\" دو کوتیشن
\\ \ بک‌اسلش

عبارت\"موجب ایجاد دو کوتیشن یا «"» در یک رشتهٔ متنی می‌شود:

مثال

var x = "We are the so-called \"Vikings\" from the north.";

عبارت\'موجب ایجاد دو کوتیشن یا «'» در یک رشتهٔ متنی می‌شود:

مثال

var x = 'It\'s alright.';

عبارت\\یک بک‌اسلش درون یک رشتهٔ متنی ایجاد می‌کند:

مثال

var x = "The character \\ is called backslash.";

شش عبارت معتبر دیگر برای تبدیل کاراکترها در جاوا اسکریپت:

کد نتیجه
\b ایجاد بک‌اسلش در رشتهٔ متنی
\f ایجاد Form Feed
\n ایجاد خط جدید
\r حذف یک کاراکتر
\t ایجاد یک تب یا فاصلهٔ افقی
\v ایجاد یک فاصلهٔ عمودی
شش کاراکتر بالا در حقیقت برای کنترل ماشین‌های تحریر، ماشین‌های ترجمه و دستگاه فکس طراحی شده‌اند. آنها نقشی در HTML ندارند.

کوچک‌تر کردن کدهای طولانی

برای خواناتر شدن کد، برنامه‌نویس‌ها اغلب دوست دارند که طول کدهایشان در هر خط بیشتر از ۸۰ کاراکتر نباشد.

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

مثال

1 document.getElementById("demo").innerHTML =
2 "Hello Dolly!";


شما همچنین می‌توانید درون یک رشتهٔ متنی به‌وسیلهٔ یک بک‌اسلش، یک خط خالی ایجاد کنید:

مثال

1 document.getElementById("demo").innerHTML = "Hello \
2 Dolly!";
استفاده از بک‌اسلش \ دیگر روش مناسبی نیست. این روش دیگر پشتیبانی نمی‌شود. برخی از مرورگرها اجازه استفاده از فضای خالی پشت کاراکتر \ را نمی‌دهند.

راه بهتری که برای ایجاد فاصله در رشتهٔ متنی وجود دارد، جمع کردن رشته‌ها است:

مثال

1 document.getElementById("demo").innerHTML = "Hello " +
2 "Dolly!";

شما نمی‌توانید به وسیلهٔ\بین کدها فاصله ایجاد کنید:

مثال

1 document.getElementById("demo").innerHTML = \
2 "Hello Dolly!";


داده‌های متنی می‌توانند از نوع اشیاء باشند

به صورت عادی، رشته‌های متنی در جاوا اسکریپت از نوع primitive هستند که از عبارت‌های ساده ساخته شده‌اند:

var firstName = "John";

اما رشته‌های متنی نیز می‌توانند به صورت یک شیء به وسیلهٔ کلمهٔ کلیدیnewتعریف شوند:

var firstName = new String("John");

مثال

1 var x = "John";
2 var y = new String("John");
3 
4 // typeof x will return string
5 // typeof y will return object

رشته‌های متنی را به صورت شیء تعریف نکنید. این کار موجب کاهش سرعت اجرای کد شما می‌شود.

کلمه کلیدی new نیز موجب پیچیده‌تر شدن کد شما می‌شود. این امر می‌تواند موجب بروز برخی از نتایج ناخواسته نیز شود:

زمانی که از عملگر==استفاده می‌کنید، رشته‌های برابر، با یکدیگر برابرند:

مثال

1 var x = "John";             
2 var y = new String("John");
3 
4 // (x == y) is true because x and y have equal values

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

مثال

1 var x = "John";             
2 var y = new String("John");
3 
4 // (x === y) is false because x and y have different types (string and object)

و یا این کار می‌تواند نتایج بدتری نیز داشته باشد. اشیاء در جاوا اسکریپت نمی‌توانند با یکدیگر مقایسه شوند:

مثال

1 var x = new String("John");             
2 var y = new String("John");
3 
4 // (x == y) is false because x and y are different objects


مثال

1 var x = new String("John");
2 var y = new String("John");
3 
4 // (x === y) is false because x and y are different objects

به تفاوت بین (x==y) و (x===y) توجه داشته باشید.

نتیجه مقایسه دو شیء در جاوا اسکریپت همیشه false خواهد بود.

تمرینات جاوا اسکریپت

Time2wait.svg ساخت نمونه مثال این بخش در دست اقدام است.


منابع آموزشی