آموزش اعداد در جاوا اسکریپت

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

در زبان برنامه نویسی جاوا اسکریپت برای اعداد یک نوع داده بیشتر وجود ندارد و از همان کلمه ی رزرو شده ی var برای تعریف اعداد صحیح و اعشاری استفاده می کنیم.

جاوا اسکریپت فقط یک نوع از اعداد را دارد. همچنین اعداد می توانند با قسمت اعشاری یا بدون قسمت اعشاری نوشته شوند.

اعداد خیلی بزرگ یا خیلی کوچک می توانند بصورت اعشاری نوشته شوند:

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

برخلاف خیلی از زبان های برنامه نویسی دیگر، زبان جاوا اسکریپت انواع مختلفی از اعداد را تعریف نمی کند، مانند اعداد صحیح، کوچک، بزرگ، ممیز شنارو (floating-point) و ... 

اعداد جاوا اسکریپت همیشه بعنوان اعداد ممیز شناور با دقت دوبرابر ذخیره می شوند، در مطلب ذیل استاندارد جهانی IEEE 754 را مشاهده می کنید. این فرمت اعداد را در 64 بیت نگه داری می کند، در این فرمت، عدد در بیت های 0 تا 51 نگه داری شده است، اعداد اعشاری در بیت های 52 تا 62 و علامت عدد (sign) در بیت 63:

دقت داشته باشید که اعداد صحیح تا 15 رقم قابل قبول هستند.

دقت اعشار در زبان جاوا اسکریپت تا 17 رقم می باشد.

اضافه کردن اعداد و رشته ها

در جاوا اسکریپت از عملگر + هم برای جمع و هم برای اتصال رشته ها استفاده می شود. در این حالت اعداد با هم جمع می شوند و رشته ها بهم متصل می شوند.

اگر دو عدد را با استفاده از عملگر + جمع کنید، حاصل یک عدد خواهد شد:

اگر دو رشته را با استفاده از عملگر + جمع کنید، حاصل یک رشته ی متصل خواهد شد:

اگر یک عدد و یک رشته را با استفاده از عملگر + جمع کنید، حاصل باز هم یک رشته ی متصل خواهد شد:

رشته های عددی

رشته های جاوا اسکریپت می توانند محتوای عددی داشته باشند:

جاوا اسکریپت سعی می کند رشته ها را در عملیات های عددی (محاسباتی) به اعداد تبدیل کند.

به این شکل هم می شود:

و همچنین به این شکل:

اما به این شکل نمی شود. خروجی مثال زیر برابر با 10010 می باشد. زیرا در این مثال دو متغیر x و y از نوع رشته ای هستند و در این حالت الحاق رشته ها صورت می گیرد.

NaN  - عدد نیست

NaN که مخف عبارت Not a Number است، یک کلمه ی رزرو شده ی جاوا اسکریپت است که نشان می دهد یک عدد، قانونی و قابل قبول نیست.

اگر شما در جاوا اسکریپت سعی کنید که با رشته ی غیر عددی محسابات انجام دهید حاصل NaN خواهد شد. در مثال زیر حاصل تقسیم عدد 100 بر رشته Apple برابر با NaN خواهد شد.

var x = 100 / "Apple";  // x will be NaN (Not a Number)

اما اگر رشته دارای یک مقدار عددی باشد، حاصل عدد خواهد شد:

var x = 100 / "10";     // x will be 10

شما می توانید از تابع isNaN() جاوا اسکریپت برای فهمیدن اینکه یک مقدار عدد محسوب می شود یا خیر استفاده کنید. خروجی مثال زیر true می باشد، چرا که حاصل تقسیم عدد 100 بر رشته Apple یک مقدار قابل قبول نیست.

دقت کنید که اگر از NaN در یک عملیات محسباتی ریاضی استفاده کنید، حاصل هم NaN خواهد شد.

یا ممکن است مثل حالت زیر، حاصل یک اتصال رشته ای شود:

NaN در زبان جاوا اسکریپت از نوع عددی می باشد و بنابراین عبارت typeof NaN مقدار number را برمی گرداند.

typeof NaN;            // returns "number"

بی نهایت

بی نهایت یا منفی بی نهایت مقداری است که وقتی بدست می آید که شما عددی را بیرون محدوده ی اعداد محاسبه کرده باشید.

تقسیم یک عدد بر 0 همانند ریاضیات یک مقدار Infinity (بی نهایت) تولید می کند.

 Infinity یک عدد محسوب می شود.

typeof Infinity;     // returns "number"

 

اعداد می توانند اشیا باشند

معمولا اعداد جاوا اسکریپت مقادیر اولیه ای هستند که از مقادیر ثابت عددی تشکیل شده اند:

var x = 123;

اما اعداد هم می توانند با کلید واژه ی new به عنوان اشیا تعریف شوند. مثال زیر نحوه انجام این کار را نمایش می دهد.

وقتی از عملگر == استفاده می کنیم، اعداد برابر، برابرند:

اما وقتی از عملگر === استفاده می کنیم، اعداد برابر، برابر نیستند، زیرا عملگر === انتظار برابر بودن هم در نوع و هم در مقدار را دارد. در مثال زیر متغیر x یک string است و متغیر y یک object است و بنابراین با یکدیگر از لحاظ نوع یکسان نیستند.

در زبان جاوا اسکریپت اشیا نمی توانند باهم مقایسه شوند:

آموزش جاوا اسکریپت آموزش طراحی سایت آموزش اعداد آموزش Numbers آموزش javascript