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

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


رشته ها

رشته ها در جاوا اسکریپت برای ذخیره و ویرایش متون استفاده می شوند . در جاوا اسکریپت حروفی که ما بین دابل کوتیشن و یا سینگل کوتیشن قرار می‌گیرند رشته محسوب می‌شوند. برای نمونه متغیر x در نمونه مثال زیر یک متغیر رشته ای بوده که حاوی مقدار John Doe است :

<p id="demo"></p>

<script>
var x = "John Doe";  // String written inside quotes
document.getElementById("demo").innerHTML = x;
</script>

شما می توانید از سینگل کوتیشن و یا دابل کوتیشن برای مشخص کردن رشته استفاده کنید :

<p id="demo"></p>

<script>

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

document.getElementById("demo").innerHTML =
carName1 + " " + carName2; 

</script>

خروجی نمونه مثال بالا به شکل زیر است :

Volvo XC60 Volvo XC60

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

<p id="demo"></p>

<script>

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

document.getElementById("demo").innerHTML =
answer1 + "<br>" + answer2 + "<br>" + answer3; 

</script>

خروجی نمونه مثال بالا به شکل زیر است :

It's alright
He is called 'Johnny'
He is called "Johnny"

تعداد کاراکترهای یک رشته

تعداد کاراکترهای یک رشته را می توان با استفاده از مشخصه length به دست آورد :

<p id="demo"></p>

<script>
var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
document.getElementById("demo").innerHTML = txt.length;
</script>

خروجی نمونه مثال بالا به شکل زیر است :

26

کاراکترهای خاص

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

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

رشته مثال بالا شامل دابل کوتیشن است.برای حل مشکل بالا از کاراکترهای گریز در جاوا اسکریپت استفاده می شود. در اینجا باید از بک اسلش(\) استفاده کرد. استفاده از بک اسلش قبل از کاراکتر خاص مربوطه باعث می‌شود، جاوا اسکریپت به آن کاراکتر به چشم یک کاراکتر ساده نگاه کند :

شکل

در زیر مشکل نمونه مثال بالا با استفاده از بک اسلش حل شده است :

<p id="demo"></p>

<script>

var x = "We are the so-called \"Vikings\" from the north.";
document.getElementById("demo").innerHTML = x; 

</script>

خروجی نمونه مثال بالا به شکل زیر است :

We are the so-called "Vikings" from the north.

مجموعه '\ یک سینگل کد را داخل یک رشته درج می‌کند :

<p id="demo"></p>

<script>

var x = 'It\'s alright.';
document.getElementById("demo").innerHTML = x; 

</script>

خروجی :

It's alright.

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

<p id="demo"></p>

<script>

var x = "The character \\ is called backslash.";
document.getElementById("demo").innerHTML = x; 

</script>

خروجی :

The character \ is called backslash.

نوشتن کد ها در خط جدید

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

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML =
"Hello Dolly!";
</script>

شما میتوانید همچنین از بک اسلش برای شکستن یک رشته و رفتن به خط بعد استفاده کنید :

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = "Hello \
Dolly!";
</script>

استفاده از بک اسلش همیشه بهترین گزینه نیست بعضی از مرورگرها از این قابلیت پشتیبانی نمی‌کنند. راه امن تر برای شکستن یک رشته استفاده از عملگر + است :

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = "Hello " +
"Dolly!";
</script>

خروجی :

Hello Dolly!

اشیای رشته

رشته ها می توانند Object باشند. به صورت عادی رشته های جاوا اسکریپ مقادیر اولیه هستند که از لیترال ها ساخته شده اند:

var firstName = "John";

اما رشته ها همچنین می تواند همچون یک شی با استفاده از کلمه کلیدی new تعریف شوند :

var firstName = new String("John");
<p id="demo"></p>

<script>
var x = "John";              // x is a string
var y = new String("John");  // y is an object

document.getElementById("demo").innerHTML =
typeof x + "<br>" + typeof y;
</script>

خروجی نمونه مثال بالا به شکل زیر است :

string
object

 

نکته : رشته ها را همچون اشیا نمونه‌سازی نکنید این کار باعث کندی اجرای برنامه می شود.


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

var x = "John";             
var y = new String("John");

// (x == y) is true because x and y have equal values

با این حال وقتی همان دو رشته را با استفاده از عملگر === با هم مقایسه می کنیم نتیجه false خواهد بود. زیرا آنها در نوع با هم متفاوتند و مقایسه هم در نوع  و هم در مقدار انجام میشود :

var x = "John";             
var y = new String("John");

// (x === y) is false because x and y have different types (string and object)

 

منتشر شده در ۹ آذر ۱۳۹۷ حمید رضا ملکی ۱۳۷ بازدید
دیدگاه ها

هنوز دیدگاهی ثبت نشده

برای ارسال دیدگاه لازم است ابتدا وارد سایت شوید