داده ها توی جاوااسکرپت دارای نوع های خاصی هستن مثلا عددی یا رشته ای
ما هشت نوع داده ی اصلی داریم هر کدوم رو یه توضیح کوتاهی خواهیم داد.
ما میتونیم هر نوع داده ای رو داخل متغیر قرار بدیم. مثلا یک متغیر میتونه مقدار رشته ای داشته باشه ولی ما به اون یه مقدار عددی بدیم
// no error let message = "hello" message = 123456;
به زبان های برنامه نویسی مثل جاوااسکریپت که چنین اجازه هایی رو میدن “dynamically typed” میگیم
let n = 123; n = 12.345;
نوع عددی هم اعداد صحیح و هم اعداد ممیز دار رو نشان می دن.
عملیات زیادی برای اعداد وجود داره، مثلا : ضرب *، تقسیم /، جمع +، تفریق - و غیره
به جز اعداد منظم، به اصطلاح "مقادیر عددی ویژه"ای هم وجود داره که به این نوع داده تعلق دارن:
Infinity , -Infinity , Nan
Infinity : به معنی بینهایت در ریاضیات. یک مقدار ویژه ای است که از هر عددی بزرگتر است
alert( 1 / 0 ); // Infinity alert( Infinity ); // Infinity
NaN : نشان دهنده یک خطای محاسباتی است. این نتیجه یک عملیات ریاضی نادرست یا تعریف نشده است
alert( "not a number" / 2 ); // NaN, such division is erroneous
در جاوا اسکریپت، نوع «number» نمیتونه مقادیر صحیح بزرگتر از ( 1 - 53^2 ) (یعنی 9007199254740991) یا کمتر از ( 1 - 53^2 )- رو برای منفیها نشون بده. این یک محدودیت فنی ناشی از نمایندگی داخلی اونهاست
برای اکثر اهداف ما این کاملاً کافیه، اما گاهی اوقات ما به اعداد واقعاً بزرگ نیاز داریم، به عنوان مثال. برای رمزنگاری یا مهرهای زمانی با دقت میکروثانیه.
نوع BigInt اخیراً برای نمایش اعداد صحیح با طول دلخواه به زبان اضافه شده است.
یک مقدار BigInt با اضافه کردن n به انتهای یک عدد صحیح ایجاد میشه
// the "n" at the end means it's a BigInt const bigInt = 1234567890123456789012345678901234567890n;
اما همچنان در برخی مرورگرها پشتیبانی نمیشه .میتونید از این جا لیست کامل پشتیبانی این نوع رو در مروگرهای مختلف رو ببینید
یک رشته در جاوا اسکریپت باید با نقل قول احاطه بشه
let str = "Hello" let str2 = 'Single quotes are ok too'; let phrase = `can embed another ${str}`;
در جاوا اسکریپت 3 نوع نقل قول وجود دارد.
نقل قول های دوگانه یا دابل کوتیشن: "سلام"
نقل قول تک یا سینگل کوتیسن: 'سلام'
بکتیک یا backticks: `سلام`
نقل قول های دوتایی و تکی نقل قول های "simple" هستند. عملاً هیچ تفاوتی بین اونا در جاوا اسکریپت وجود نداره.
بکتیکها نقل قولهای "عملکرد گسترده" ( extended functionality ) هستند. اونا به ما این امکان رو می دن که متغیرها و عبارات رو با قرار دادن اونها در {…}$ در یک رشته جاسازی کنیم، به عنوان مثال:
let name = "John" // embed a variable alert( `Hello, ${name}!` ); // Hello, John! // embed an expression alert( `the result is ${1 + 2}` ); // the result is 3
نوع بولین تنها دو مقدار داره: 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 "yes")
مقدار ویژه ی null به هیچ کدوم از نوع های گفته شده در بالا تعلق نداره.
یک نوع جداگونه برای خودش تشکیل می ده که فقط حاوی مقدار null هستش
let age=null;
در جاوا اسکریپت، null مانند برخی از زبانهای دیگر «اشاره به یک شی غیر موجود» یا «اشارهگر تهی» نیست.این فقط یک مقدار ویژه است که نشان دهنده ی "هیچ"، "خالی" یا "مقدار ناشناخته" است.
کد بالا بیان می کنه که سن ناشناخته است.
مقدار ویژه ی undefined مانند نوع null یه حالت ویژه ای میباشد که وقتی متغیری را اعلام میکنیم ولی مقداری را برای آن در نظر نمیگیریم ایجاد میشود
let age; alert(age); // shows "undefined"
به همه ی نوع هایی که تا حالا بررسی کردیم به اصطلاح pirimitive گفته میشه چون مقدار اونها در یک لحظه فقط میتونه یک چیز باشه(مثلا یه رشته یا یه عدد یا هر چی) ولی در مقابل از ابجکت ها برای ذخیره ی مجموعه ای از داده ها و موجودیت های پیچیده تر استفاده میشه
از اونجایی که ابجکت ها خیلی توی جاوااسکریپت مهم هستند امیدوارم بعدا در رابطشون کامل حرف بزنیم
نوع symbol برای ایجاد شناسه های "یکتا" برای ابجکت ها استفاده می شه. شناخت کامل اون نیازمند شناخت ابجکت هاست
برای بدست آوردن نوع داده ای یک متغیر از دستور typeof استفاده میکنیم
typeof undefined // "undefined" typeof 0 // "number" typeof 10n // "bigint" typeof true // "boolean" typeof "foo" // "string" typeof Symbol("id") // "symbol" typeof Math // "object" typeof null // "object" typeof alert // "function"
8 نوع داده اصلی در جاوا اسکریپت وجود داره
خیلی ممنون که تا اینجا اومدی و سعی کردی با انواع داده ها توی جاوااسکریپت آشنا بشی
اگه چیزی بود که من اشتباه متوجه شدم حتما بهم بگو تا کنار هم یاد بگیریم ?
منبع: https://javascript.info