با سلام، مبحث امروز ما data types یا انواع داده ها است. متغیر های جاوا اسکریپت می توانند انواع مختلفی از داده را در خود ذخیره کنند، مثل اعداد، رشته ها، اشیاء و غیره:
var length = 16; // داده از نوع عدد var lastName = "Johnson"; // داده از نوع رشته var x = {firstName:"John", lastName:"Doe"}; // داده از نوع شیء
در زبان های برنامه نویسی، مبحث data type بسیار مهم است. چرا؟ ما برای اینکه بتوانیم با متغیر ها کار کنیم باید از نوع آن ها هم چیز هایی بدانیم. بدون مبحث انواع داده کامپیوتر چطور می خواهد کد زیر را حل کند؟
var x = 16 + "Volvo";
آیا جمع زدن کلمه ی volvo با عدد 16 اصلا معنی می دهد؟ آیا این کار منطقی است؟ مطمئنا جواب شما هم منفی است اما جاوا اسکریپت با استفاده از انواع مبحث داده این مشکل را حل می کند و این کد را به شکل زیر در نظر می گیرد:
var x = "16" + "Volvo";
یادآوری: در جلسات قبل توضیح دادیم که اگر یک عدد را با یک رشته جمع ببندید، جاوا اسکریپت آن عدد را به صورت خودکار تبدیل به رشته می کند.
مثال زیر نشان دهنده ی این مورد است:
<!DOCTYPE html> <html> <body> <h2>JavaScript</h2> <p>When adding a number and a string, JavaScript will treat the number as a string.</p> <p id="demo"></p> <script> var x = 16 + "Volvo"; document.getElementById("demo").innerHTML = x; </script> </body> </html>
خروجی این مثال را می توانید در ادیتور آنلاین جاوا اسکریپت مشاهده کنید.
البته نباید از یک نکته ی مهم غافل شد، آن هم این است که جاوا اسکریپت کد ها را از چپ به راست تفسیر و اجرا می کند بنابراین اگه به مثال زیر برخورد کنیم:
var x = 16 + 4 + "Volvo";
خروجی آن عبارت "20Volvo" خواهد بود!
اما اگر به عبارت زیر برخورد کنیم:
var x = "Volvo" + 16 + 4;
خروجی آن عبارت "Volvo164" خواهد بود!
انواع داده در جاوا اسکریپت پویا است
این مسئله بدان معنی است که یک متغیر می تواند انواع مختلف داده را قبول کند:
var x; // نوع متغیر ها تعریف نشده است x = 5; // متغیر ما در اینجا از نوع عدد است x = "John"; // متغیر ما در اینجا از نوع رشته است
خروجی این مثال را می توانید در ادیتور آنلاین جاوا اسکریپت مشاهده کنید.
یک رشته، توالی خاصی از کاراکتر ها است، به طور مثال "روکسو" یا "Roxo" یا حتی "5" نیز رشته هستند. رشته ها را باید بین single quotation یا double quotation قرار دهید. مثال:
var carName1 = "Volvo XC60"; // Using double quotes var carName2 = 'Volvo XC60'; // Using single quotes
اگر نمی دانید single quote یا double quote چیست به این لینک رفته و به جدولی که در مقاله است مراجعه کنید.
رشته های جاوا اسکریپت معمولا برای ذخیره و دستکاری متن ها استفاده می شوند و تعداد کاراکتر های داخل quotation (کوتیشن) می توانند صفر یا بیشتر باشد.
شما می توانید در داخل یک رشته از علامت های quotation استفاده کنید، البته به شرطی که با علامت های اصلی رشته یکی نباشند. به مثال زیر توجه کنید:
var answer1 = "It's alright"; var answer2 = "He is called 'Johnny'"; var answer3 = 'He is called "Johnny"';
اگر از single quote برای مشخص کردن رشته استفاده شده است نمی توان داخل آن دوباره از single quote استفاده کرد.
آیا راهی برای دور زدن این مشکل وجود دارد؟ بله! باید کاراکتر مورد نظر را escape کنید (یعنی فراری دهید!) برای این کار از علامت \ (بک اسلش) قبل از علامت quotation استفاده کنید. مثال:
var answer2 = "He is called \"Johnny\""; var answer3 = 'He is called "Johnny"';
فراری دادن معمولا برای سه کاراکتر زیر انجام می شود:
کد | خروجی | نام |
\' | ' | Single quote |
\" | " | Double quote |
\\ | \ | Backslash |
برای فهمیدن طول یک رشته (یعنی تعداد کاراکتر های داخل آن) از دستور length استفاده می کنیم:
<!DOCTYPE html> <html> <body> <h2>JavaScript String Properties</h2> <p>The length property returns the length of a string:</p> <p id="demo"></p> <script> var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; document.getElementById("demo").innerHTML = txt.length; </script> </body> </html>
خروجی این کد عدد 26 خواهد بود. می توانید این مثال را در ادیتور آنلاین جاوا اسکریپت مشاهده کنید.
در بعضی از زبان های برنامه نویسی مثل PHP شما می توانید کد را از وسط بشکنید (یعنی اینتر بزنید و بقیه ی کد را به خط بعد منتقل کنید). برنامه نویسان معمولا این کار را برای منظم تر شدن کد ها می کنند، مخصوصا زمانی که یک خط کد خاص بسیار طولانی شده است و برای دیدن آن باید از اسکرول افقی استفاده کرد.
جاوا اسکریپت نیز تقریبا چنین قابلیتی دارد. شما می توانید خطوط کد را در جاوا اسکریپت بعد از اپراتور بشکنید. مثال:
document.getElementById("demo").innerHTML = "Hello Roxo!";
اما اگر بخواهید کدی را از وسط یک رشته بشکنید باید آن را escape کنید:
document.getElementById("demo").innerHTML = "Hello \ Roxo!";
نکته: برخی از مرورگر ها از کاراکتر \ پشتیبانی نمی کنند، بنابراین حواستان را جمع کنید!
راه دیگری که می توانید یک رشته را در خطی از کد قطع کنید استفاده از علامت + است:
document.getElementById("demo").innerHTML = "Hello " + "Roxo!";
نکته: ما در این مثال ها، رشته ها را شکستیم نه خطوط کد را! به عبارت دیگر، مثال زیر غلط است:
document.getElementById("demo").innerHTML = \ "Hello Roxo!";
امیدوارم از این قسمت استفاده کرده باشید.
در پناه حق.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.