استاندارد اکمااسکریپت (ECMAScript) کلاً ۸ نوع داده رو در جاوااسکریپت تعریف میکنه. این ۸ تا به دو دسته اصلی تقسیم میشن: ۷ داده پایهای (Primitive) و ۱ داده شیء (Object).
این دادهها خیلی ساده هستند و ساختار پیچیدهای ندارند:
بولین (Boolean): فقط دو تا مقدار قبول میکنه؛ یا درسته (true) یا غلط (false). (بیشتر برای شرطها استفاده میشه).
پوچ (null): یک کلمه کلیدی خاص که یعنی «هیچی درون این متغیر نیست و عمداً خالی گذاشته شده». (یادت باشه چون جاوااسکریپت حساسه، null با Null یا NULL فرق داره).
تعریفنشده (undefined): وقتی یک متغیر رو میسازی ولی هنوز هیچ مقداری بهش ندادی، خودش خودکار مقدارش میشه undefined.
عدد (Number): شامل همه اعداد میشه؛ چه عدد صحیح باشه (مثل 42) چه اعشاری (مثل 3.14159).
اعداد غولپیکر (BigInt): برای عددهای خیلی خیلی بزرگی که توی بخش Number جا نمیشن! آخر این عددها یک حرف n میذاریم؛ مثل 9007199254740992n.
رشته یا متن (String): مجموعهای از حروف و کاراکترها که یک متن رو میسازن؛ مثل "سلام" یا "Howdy".
سیمبل (Symbol): یک نوع داده خاص که مقدارهایی کاملاً منحصربهفرد و غیرقابل تغییر میسازه (بیشتر برای کارهای پیشرفته کاربرد داره).
با اینکه انواع داده در جاوااسکریپت کمه، اما همینها کلی کار رو برات جلو میبرن. توابع (Functions) هم یکی دیگه از ارکان اصلی این زبان هستند. از نظر فنی، توابع هم یک جور شیء (Object) به حساب میان، اما برای اینکه راحتتر درکش کنی اینطوری بهشون نگاه کن:
شیءها (Objects): مثل جعبهها یا کانتینرهایی اسمدار هستند که کلی مقدار مختلف رو تو خودشون نگه میدارن.
توابع (Functions): کارهایی هستند که اسکریپت تو میتونه انجامشون بده (دستورالعملها).
جاوااسکریپت یک زبان پویا (Dynamically typed) هست. این یعنی چی؟ یعنی وقتی داری یک متغیر میسازی، نیازی نیست بهش بگی: «آهای جاوااسکریپت! این متغیری که میسازم حتماً عدده یا حتماً متنه». خود جاوااسکریپت موقع اجرای کد، با توجه به مقداری که دادی، نوعش رو تشخیص میده و هر جا هم لازم باشه، خودش اونها رو به هم تبدیل میکنه!
مثلاً اول کار میتونی یک متغیر عددی بسازی:
let answer = 42;
و چند خط پایینتر، خیلی راحت یک متن (String) بریزی توی همون متغیر:
answer = "مرسی برای همه ماهیها!";
چون جاوااسکریپت پویاست، این کار اصلاً ارور نمیده و با خیال راحت قبولش میکنه.
+)توی ریاضی عملگر + یعنی جمع کردن؛ اما توی جاوااسکریپت اگر یک طرفِ جمع متن (String) باشه و طرف دیگه عدد (Number)، جاوااسکریپت عدد رو هم به متن تبدیل میکنه و اونها رو به هم میچسبونه!
به این مثالها نگاه کن:
x = "The answer is " + 42; // خروجی: "The answer is 42"
y = 42 + " is the answer"; // خروجی: "42 is the answer"
z = "37" + 7; // خروجی: "377" (به جای اینکه جمع کنه، چسبوندشون به هم!)
یک نکته مهم: این رفتار عجیبِ چسباندن، فقط و فقط مخصوص عملگر + هست. بقیه عملگرهای ریاضی (مثل تفریق، ضرب و تقسیم) اینطوری نیستند و متن رو به عدد تبدیل میکنن تا حسابکتاب انجام بشه:
"37" - 7; // خروجی: 30 (چون تفریقه، متن ۳۷ رو عدد فرض کرد)
"37" * 7; // خروجی: 259 (ضرب انجام شد)
گاهی اوقات یک عدد از اینترنت یا فرم سایت به دستت میرسه که در واقع متنه (مثلاً "37") و میخوای روش کار ریاضی انجام بدی. برای تبدیل متن به عدد، چندتا راه داری:
parseInt(): متن رو میگیره و فقط بخش صحیحش (بدون اعشار) رو به عدد تبدیل میکنه.
parseFloat(): متن رو به عدد تبدیل میکنه و اعشارش رو هم حفظ میکنه.
Number(): کل متن رو مستقیماً به عدد تبدیل میکنه (چه صحیح، چه اعشاری).
یک فوت کوزهگری برای
parseInt: بهترین روش اینه که همیشه یک عدد دوم هم به عنوان پارامتر به این تابع بدی که بهش میگن رادیکس (Radix) یا مبنای عددی. این عدد مشخص میکنه که سیستم عددی شما چیه (مثلاً دهدهی هست یا باینری یا...).
parseInt("101", 2); // خروجی میشه عدد 5 (چون گفتیم در مبنای ۲ یا همون باینری حسابش کن)
+)یک راه فوقالعاده راحت برای تبدیل متن به عدد، اینه که یک علامت مثبت (+) بگذاری پشتِ اون متن! این کار دقیقاً مثل تابع Number() عمل میکنه و متن رو سریعاً عدد میکنه.
به این تفاوت نگاه کن:
// حالت عادی (متنها به هم میچسبند):
"1.1" + "1.1"; // خروجی میشه: '1.11.1'
// حالت جادویی با علامت مثبت (متنها عدد میشن و جمع میشن):
(+"1.1") + (+"1.1"); // خروجی میشه: 2.2
// نکته: پرانتزها رو فقط برای اینکه چشمت راحتتر ببینه گذاشتیم و اجباری نیستند.
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://developer.mozilla.org/en-US/docs/Web/JavaScript