این قسمت از آموزش جاوا اسکریپت به زبان ساده در مورد نوع های داده ای در جاوا اسکریپت است.
متغیرهای جاوا اسکریپت می توانند بسیاری از انواع داده ای را داشته باشند : اعداد، رشته ها، اشیا و دیگر نوع های داده ای:
1 2 3 4 5 | var length = 16; // Number var lastName = "Johnson"; // String var x = {firstName:"John", lastName:"Doe"}; // Object |
مفهوم انواع داده ها
در برنامه نویسی، نوع های داده ای از مهمترین مفهوم ها هستند.
برای اینکه بتوانید بر روی متغیرها عملیاتی انجام دهید مهم است که در مورد نوع آن ها بدانید.
بدون نوع داده، یک کامپیوتر نمی تواند با خیال راحت این مساله را حل کند:
1 | var x = 16 + "Volvo"; |
آیا معنایی برای جمع کردن “Volvo” با شانزده وجود دارد؟ آیا خطایی ایجاد می کند یا یک نتیجه را ایجاد می کند؟
جاوا اسکریپت با مثال بالا به صورت زیر برخورد میکند:
1 | var x = "16" + "Volvo"; |
در هنگام جمع کردن یک عدد و یک رشته، جاوا اسکریپت این عدد را به عنوان یک رشته پردازش می کند.
جاوا اسکریپت دستورات را از چپ به راست پردازش می کند. ترتیب های مختلف می توانند نتایج مختلفی تولید کنند:
در مثال اول، جاوا اسکریپت ۱۶ و ۴ را به عنوان عدد در نظر میگیرد، تا زمانی که به “ولوو” برسد.
در مثال دوم، از آنجا که اولین عملوند یک رشته است، تمام عملوند های بعد از آن به عنوان رشته در نظر گرفته می شوند.
نوع داده ها در جاوا اسکریپت پویا هستند
جاوا اسکریپت دارای انواع پویا است، این به این معنی است که یک متغیر را می توان برای نگهداری انواع داده های مختلف استفاده کرد:
مثال
1 2 3 4 5 | var x; // Now x is undefined x = 5; // Now x is a Number x = "John"; // Now x is a String |
رشته ها در جاوا اسکریپت
یک رشته (یا یک رشته متن) یک مجموعه از کاراکترها مانند “John Doe” است.
رشته ها با علامت کوتیشن یا نقل قول مشخص می شوند. می توان آنها را با تک کوتیشن یا جفت کوتیشن نوشت:
مثال
1 2 3 | var carName1 = "Volvo XC60"; // جفت کوتیشین var carName2 = 'Volvo XC60'; // تک کوتیشن |
شما می توانید کوتیشن ها را در درون یک رشته استفاده کنید، تا زمانی که با کوتیشن های اطراف رشته مطابقت نداشته باشد:
به عنوان مثال وقتی دوطرف رشته تک کوتیشن است، شما فقط می توانید در داخل رشته از جفت کوتیشن استفاده کنید و یا برعکس.
مثال
1 2 3 4 5 6 7 8 | var answer1 = "It's alright"; // تک کوتیشن درون جفت کوتیشن var answer2 = "He is called 'Johnny'"; // تک کوتیشن درون جفت کوتیشن var answer3 = 'He is called "Johnny"'; // جفت کوتیشن درون تک کوتیشن |
در درس های بعدی بیشتر درباره رشته ها یاد خواهید گرفت.
اعداد در جاوا اسکریپت
جاوا اسکریپت تنها یک نوع اعداد دارد.
اعداد می توانند با اعشار یا بدون اعشار نوشته شوند:
مثال
1 2 3 | var x1 = 34.00; // با اعشار نوشته شده var x2 = 34; // بدون اعشار نوشته شده |
اعداد خیلی بزرگ و یا فوق العاده کوچک را می توان با نماد علمی نوشت:
در آینده بیشتر در مورد اعداد یاد خواهید گرفت.
بولیَن ها در جاوا اسکریپت
بولیَن ها فقط می توانند دو مقدار داشته باشند: true
یا false
.
مثال
1 2 3 4 5 | var x = 5; var y = 5; var z = 6; (x == y) // برمی گرداند true (x == z) // برمی گرداند false |
بولین ها اغلب در شرط ها استفاده می شوند.
در درس های بعدی در مورد شرط ها بیشتر یاد خواهید گرفت.
آرایه ها در جاوا اسکریپت
آرایه های جاوا اسکریپت با کروشه [ ] نوشته می شوند.
آیتم های آرایه با کاما از هم جدا می شوند
کد زیر یک آرایه به نام cars
تعریف (ایجاد) می کند،که سه آیتم (نام خودرو ها) را شامل می شود :
ایندکس های آرایه از صفر شروع می شوند، یعنی اولین مورد [۰]، دوم [۱] و الی آخر ادامه می یابد.
در درس های بعدی بیشتر در مورد آرایه ها خواهید آموخت.
اشیا در جاوا اسکریپت
اشیا در جاوا اسکریپت توسط آکولاد ها نوشته و تعریف می شوند { }
.
خصوصیت های شی بصورت جفت های نام:مقدار که با کاما از هم جدا شده اند، تعریف می شوند.
مثال
1 | var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}; |
شی (person) که در مثال بالا تعریف شده است دارای ۴ خصوصیت است: firstName, lastName, age, eyeColor.
در آموزش های بعدی در مورد اشیا چیز های بیشتری یاد میگیرید
عملگر نوع
می توان از عملگر نوع typeof
برای بدست آوردن نوع یک متغیر استفاده کرد.
عملگر typeof
نوع متغیر یا عبارتی را باز می گرداند:
مثال
1 2 3 4 5 | typeof "" // Returns "string" typeof "John" // Returns "string" typeof "John Doe" // Returns "string" |
مثال
1 2 3 4 5 6 7 8 9 | typeof 0 // Returns "number" typeof 314 // Returns "number" typeof 3.14 // Returns "number" typeof (3) // Returns "number" typeof (3 + 4) // Returns "number" |
مقدار Undefined
در جاوا اسکریپت، یک متغیر بدون مقدار، دارای مقدار پیشفرض undefined
است. نوع متغیر نیز undefined
است.
هر متغیری را می توان با مقدار دهی به undefined
خالی کرد. نوع آن نیز undefined
خواهد شد.
مقادیر خالی
بعضی از مقادیر خالی هیچ ارتباطی به undefined
ندارد.
یک رشته خالی دارای یک مقدار معتبر و نوع معتبر است.
مقدار Null
در جاوا اسکریپت null
یعنی “هیچ”. به عنوان چیزی که وجود ندارد فرض می شود.
متاسفانه، در جاوا اسکریپت، نوع داده null
یک شی است.
می توان این مورد را یک اشکال در جاوا اسکریپت دانست که نتیجه عبارت typeof null
یک شی می شود. اگر چه می بایست null
باشد.
شما می توانید با مقدار دهی یک شی به null
آن را خالی کنید:
مثال
1 2 | var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}; person = null; // Now value is null, but type is still an object |
همچنین شما می توانید با مقدار دهی یک شی به undefined
آن را خالی کنید:
مثال
1 2 | var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}; person = undefined; // Now both value and type is undefined |
تفاوت بین Undefined و Null
undefined
و null
در مقدار برابر هستند، اما در نوع متفاوتند:
1 2 3 4 5 | typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true |
مقدار اولیه
یک مقدار داده اولیه، یک مقدار داده ساده بدون هیچ ویژگی و متد اضافی است.
عملگر typeof
می تواند یکی از این انواع اولیه را بازگرداند:
- رشته
- عدد
- بولیَن
- undefined یا تعریف نشده
مثال
1 2 3 4 5 6 7 | typeof "John" // Returns "string" typeof 3.14 // Returns "number" typeof true // Returns "boolean" typeof false // Returns "boolean" typeof x // Returns "undefined" (if x has no value) |
داده های پیچیده
عملگر typeof
می تواند یکی از دو نوع پیچیده را بازگرداند:
تابع
شی
عملگر typeof
نوع object را برای اشیا، آرایه ها و null باز می گرداند.
عملگر typeof
نوع object را برای توابع باز نمی گرداند.
مثال
1 2 3 4 5 6 | typeof {name:'John', age:34} // Returns "object" typeof [1,2,3,4] // Returns "object" (not "array", see note below) typeof null // Returns "object" typeof function myFunc(){} // Returns "function" |
عملگر typeof
مقدار “object
” را برای آرایه ها برمی گرداند چون آرایه های جاوا اسکریپتی شی هستند.
منبع : W3Schools.com
درس بعدی : توابع در جاوا اسکریپتدرس قبلی : عملگر های انتساب در جاوا اسکریپت