انواع داده ها

داده ها توی جاوااسکرپت دارای نوع های خاصی هستن مثلا عددی یا رشته ایما هشت نوع داده ی اصلی داریم هر کدوم رو یه توضیح کوتاهی خواهیم داد.ما میتونیم هر نوع داده ای رو داخل متغیر قرار بدیم. مثلا یک متغیر میتونه مقدار رشته ای داشته باشه ولی ما به اون یه مقدار عددی بدیم // no error let message = &quothello&quot message = 123456; به زبان های برنامه نویسی مثل جاوااسکریپت که چنین اجازه هایی رو میدن “dynamically typed” میگیمنوع عددی number let n = 123; n = 12.345; نوع عددی هم اعداد صحیح و هم اعداد ممیز دار رو نشان می دن.عملیات زیادی برای اعداد وجود داره، مثلا : ضرب *، تقسیم /، جمع +، تفریق - و غیرهبه جز اعداد منظم، به اصطلاح "مقادیر عددی ویژه"ای هم وجود داره که به این نوع داده تعلق دارن:Infinity , -Infinity , NanInfinity : به معنی بینهایت در ریاضیات. یک مقدار ویژه ای است که از هر عددی بزرگتر استalert( 1 / 0 ); // Infinity alert( Infinity ); // Infinity NaN : نشان دهنده یک خطای محاسباتی است. این نتیجه یک عملیات ریاضی نادرست یا تعریف نشده است alert( &quotnot a number&quot / 2 ); // NaN, such division is erroneousنوع عددی BigIntدر جاوا اسکریپت، نوع «number» نمی‌تونه مقادیر صحیح بزرگ‌تر از ( 1 - 53^2 ) (یعنی 9007199254740991) یا کمتر از ( 1 - 53^2 )- رو برای منفی‌ها نشون بده. این یک محدودیت فنی ناشی از نمایندگی داخلی اونهاستبرای اکثر اهداف ما این کاملاً کافیه، اما گاهی اوقات ما به اعداد واقعاً بزرگ نیاز داریم، به عنوان مثال. برای رمزنگاری یا مهرهای زمانی با دقت میکروثانیه.نوع BigInt اخیراً برای نمایش اعداد صحیح با طول دلخواه به زبان اضافه شده است.یک مقدار BigInt با اضافه کردن n به انتهای یک عدد صحیح ایجاد میشه// the &quotn&quot at the end means it's a BigInt const bigInt = 1234567890123456789012345678901234567890n;اما همچنان در برخی مرورگرها پشتیبانی نمیشه .میتونید از این جا لیست کامل پشتیبانی این نوع رو در مروگرهای مختلف رو ببینیدرشته stringیک رشته در جاوا اسکریپت باید با نقل قول احاطه بشه let str = &quotHello&quot let str2 = 'Single quotes are ok too'; let phrase = `can embed another ${str}`;در جاوا اسکریپت 3 نوع نقل قول وجود دارد.نقل قول های دوگانه یا دابل کوتیشن: "سلام"نقل قول تک یا سینگل کوتیسن: 'سلام'بکتیک یا backticks: `سلام`نقل قول های دوتایی و تکی نقل قول های "simple" هستند. عملاً هیچ تفاوتی بین اونا در جاوا اسکریپت وجود نداره.بک‌تیک‌ها نقل قول‌های "عملکرد گسترده" ( extended functionality ) هستند. اونا به ما این امکان رو می دن که متغیرها و عبارات رو با قرار دادن اونها در {…}$ در یک رشته جاسازی کنیم، به عنوان مثال:let name = &quotJohn&quot // embed a variable alert( `Hello, ${name}!` ); // Hello, John! // embed an expression alert( `the result is ${1 + 2}` ); // the result is 3بولین Boolean (نوع منطقی)نوع بولین تنها دو مقدار داره: true و falseاین نوع معمولاً برای ذخیره مقادیر yes/no استفاده می‌شه: true به معنای "بله، صحیح" و false به معنای "نه، نادرست"let nameFieldChecked = true; // yes, name field is checked let ageFieldChecked = false; // no, age field is not checkedهمچنین مقادیر بولین از مقایسه ها هم بدست میادlet isGreater = 4 > 1; alert( isGreater ); // true (the comparison result is &quotyes&quot)مقدار "null"مقدار ویژه ی null به هیچ کدوم از نوع های گفته شده در بالا تعلق نداره.یک نوع جداگونه برای خودش تشکیل می ده که فقط حاوی مقدار null هستشlet age=null;در جاوا اسکریپت، null مانند برخی از زبان‌های دیگر «اشاره به یک شی غیر موجود» یا «اشاره‌گر تهی» نیست.این فقط یک مقدار ویژه است که نشان دهنده ی "هیچ"، "خالی" یا "مقدار ناشناخته" است.کد بالا بیان می کنه که سن ناشناخته است.مقدار "undefined"مقدار ویژه ی undefined مانند نوع null یه حالت ویژه ای میباشد که وقتی متغیری را اعلام میکنیم ولی مقداری را برای آن در نظر نمیگیریم ایجاد میشودlet age; alert(age); // shows &quotundefined&quotابجکت ها و نمادها Objects and Symbolsبه همه ی نوع هایی که تا حالا بررسی کردیم به اصطلاح pirimitive گفته میشه چون مقدار اونها در یک لحظه فقط میتونه یک چیز باشه(مثلا یه رشته یا یه عدد یا هر چی) ولی در مقابل از ابجکت ها برای ذخیره ی مجموعه ای از داده ها و موجودیت های پیچیده تر استفاده میشهاز اونجایی که ابجکت ها خیلی توی جاوااسکریپت مهم هستند امیدوارم بعدا در رابطشون کامل حرف بزنیمنوع symbol برای ایجاد شناسه های "یکتا" برای ابجکت ها استفاده می شه. شناخت کامل اون نیازمند شناخت ابجکت هاستبرای بدست آوردن نوع داده ای یک متغیر از دستور typeof استفاده میکنیمtypeof undefined // &quotundefined&quot typeof 0 // &quotnumber&quot typeof 10n // &quotbigint&quot typeof true // &quotboolean&quot typeof &quotfoo&quot // &quotstring&quot typeof Symbol(&quotid&quot) // &quotsymbol&quot typeof Math // &quotobject&quot typeof null // &quotobject&quot typeof alert // &quotfunction&quotخلاصه8 نوع داده اصلی در جاوا اسکریپت وجود دارهnumber for numbers of any kind: integer or floating-point, integers are limited by ±(253-1).bigint is for integer numbers of arbitrary lengthstring for strings. A string may have zero or more characters, there’s no separate single-character typeboolean for true/falsenull for unknown values – a standalone type that has a single value nullundefined for unassigned values – a standalone type that has a single value undefinedobject for more complex data structuressymbol for unique identifiersخیلی ممنون که تا اینجا اومدی و سعی کردی با انواع داده ها توی جاوااسکریپت آشنا بشیاگه چیزی بود که من اشتباه متوجه شدم حتما بهم بگو تا کنار هم یاد بگیریم ?منبع: https://javascript.info