انصار میرزایی
انصار میرزایی
خواندن ۴ دقیقه·۳ سال پیش

انواع داده ها

داده ها توی جاوااسکرپت دارای نوع های خاصی هستن مثلا عددی یا رشته ای

ما هشت نوع داده ی اصلی داریم هر کدوم رو یه توضیح کوتاهی خواهیم داد.

ما میتونیم هر نوع داده ای رو داخل متغیر قرار بدیم. مثلا یک متغیر میتونه مقدار رشته ای داشته باشه ولی ما به اون یه مقدار عددی بدیم

// no error let message = &quothello&quot message = 123456;

به زبان های برنامه نویسی مثل جاوااسکریپت که چنین اجازه هایی رو میدن “dynamically typed” میگیم


نوع عددی number

let n = 123; n = 12.345;

نوع عددی هم اعداد صحیح و هم اعداد ممیز دار رو نشان می دن.

عملیات زیادی برای اعداد وجود داره، مثلا : ضرب *، تقسیم /، جمع +، تفریق - و غیره

به جز اعداد منظم، به اصطلاح "مقادیر عددی ویژه"ای هم وجود داره که به این نوع داده تعلق دارن:

Infinity , -Infinity , Nan

Infinity : به معنی بینهایت در ریاضیات. یک مقدار ویژه ای است که از هر عددی بزرگتر است

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 length
  • string for strings. A string may have zero or more characters, there’s no separate single-character type
  • boolean for true/false
  • null for unknown values – a standalone type that has a single value null
  • undefined for unassigned values – a standalone type that has a single value undefined
  • object for more complex data structures
  • symbol for unique identifiers


خیلی ممنون که تا اینجا اومدی و سعی کردی با انواع داده ها توی جاوااسکریپت آشنا بشی

اگه چیزی بود که من اشتباه متوجه شدم حتما بهم بگو تا کنار هم یاد بگیریم ?

منبع: https://javascript.info

جاوااسکریپتdata types
شاید از این پست‌ها خوشتان بیاید