اعداد در جاوا اسکریپت

جاوا اسکریپت فقط یک نوع عدد دارد. اعداد را می توان با یا بدون اعشار نوشت. مثال:

numbers in java

اعداد فوق العاده بزرگ یا فوق العاده کوچک را می توان با نمادهای علمی نوشت. مثال:

اعداد در جاوا اسکریپت

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

برخلاف بسیاری از دیگر زبان های برنامه نویسی، جاوا اسکریپت انواع مختلف اعداد از قبیل اعداد صحیح، کوتاه، بلند یا اعشاری شناور ندارد. همیشه اعداد در جاوا اسکریپت به صورت عدد اعشاری شناور ذخیره می شود و از استاندارد IEEE 754 تبعیت می کند.

این قالب اعداد را به صورت 64 بیت ذخیره می کند، که در آن اعداد (کسر) در صفر تا 51 بیت ذخیره شده، اشعار آن بیت های 52 تا 62 بوده و علامت عدد در بیت 63 ذخیره می شود. مثال:

اعداد در جاوا اسکریپت

دقت

اعداد صحیح (اعداد بدون نقطه اعشار یا نماد علمی) را اعداد صحیح تا 15 رقم در نظر می گیرد. مثال:

اعداد در جاوا اسکریپت

حداکثر تعداد رقم اعشار 17 رقم می باشد، اما اعداد جبری اعشاری شناور همیشه 100% صحیح نیستند. مثال:

اعداد در جاوا اسکریپت

برای حل مشکل فوق، ضرب و تقسیم کردن می تواند کمک کننده باشد. مثال:

اعداد در جاوا اسکریپت

اعداد مبنای 16

اگر شروع عدد 0x باشد، جاوا اسکریپت آنها را هگزادسیمال (مبنای 16) محسوب می کند. مثال:

اعداد در جاوا اسکریپت

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

به طور پیش فرض جاوا اسکریپت اعداد را بر مبنای ده (دسیمال) نمایش می دهد. اما می توانید از متد () string استفاده کرده و خروجی عدد را بر مبنای 16 (هگزا)، هشت (اکتال) یا دو (باینری) نمایش دهید. مثال:

اعداد در جاوا اسکریپت

بی نهایت

بی نهایت (یا منفی بی نهایت) مقداری است که در جاوا اسکریپت برگردانده می شود اگر شما عددی را خارج از بزرگترین عدد ممکن محاسبه کنید. مثال:

اعداد در جاوا اسکریپت

تقسیم عدد بر صفر نیز همین خروجی را خواهد داشت. مثال:

اعداد در جاوا اسکریپت

بی نهایت یک عدد است. تابع typeOf نیز عدد بر می گرداند. مثال:

اعداد در جاوا اسکریپت

NaN – عدد نیست

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

اعداد در جاوا اسکریپت

هرچند، اگر رشته حاوی مقدار عددی باشد، نتیجه عدد خواهد بود. مثال:

اعداد در جاوا اسکریپت

می توانید از تابع عمومی () isNaN برای مشخص کردن اینکه مقداری عدد است یا نه استفاده کنید. مثال:

اعداد در جاوا اسکریپت

مواظب باشید. اگر از NaN در یک عبارت جبری عددی استفاده کنید، نتیجه آن هم NaN خواهد بود. مثال:

اعداد در جاوا اسکریپت

یا نتیجه ممکن است به صورت چسباندن مقادیر به هم باشد. مثال:

اعداد در جاوا اسکریپت

NaN یک عدد بوده و تابع typeOf نیز عدد را بر می گرداند. مثال:

اعداد در جاوا اسکریپت

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

در حالت معمول اعداد مقادیر ابتدایی هستند که از مقادیر دلخواه تشکیل شده اند مثل var x=123. اما اعداد را می توان به صورت شی نیز تعریف کرد که از عبارت کلیدی new برای اینکار استفاده می شود: var y=new Number(123). مثال:

اعداد در جاوا اسکریپت

از ایجاد شی عدد اجتناب کنید. موجب کاهش سرعت اجرای کد و عوارض جانبی ناخواسته در برنامه می شود.

زمانی که از اپراتور تساوی == استفاده می کنید، اعداد مساوی، مساوی به نظر می رسند. مثال:

اعداد در جاوا اسکریپت

زمانی که از اپراتور تساوی = = = استفاده شود، اعداد مساوی برابر هم نخواهند بود. زیرا اپراتور = = = انتظار تساوی را هم از نظر نوع و هم مقدار دارد. مثال:

اعداد در جاوا اسکریپت

یا حتی عارضه بدتر این است که اشیا را نمی توان مقایسه کرد. مثال:

اعداد در جاوا اسکریپت

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

خواص و متدهای اعداد

مقادیر ابتدایی (ساده) مثل 3.14 یا 2015 نمی توانند خواص و متد داشته باشند (زیرا شی نیستند). اما در جاوا اسکریپت، این مقادیر نیز دارای متد و خاصیت هستند، زیرا جاوا اسکریپت با آنها به عنوان شی برخورد می کند.

خصیصه های اعداد

خصیصه های اعداد در جدول زیر آمده است:

اعداد در جاوا اسکریپت

مثال:

اعداد در جاوا اسکریپت

خواص اعداد در جاوا اسکریپت به یک احاطه گر شی (wrapper) به نام Number تعلق دارند. به این خواص تنها به صورت Number می توان دسترسی داشت مثل Number MAX_VALUE

در صورت استفاده از myNumber.MAX_VALUE ، که در آن myNumber یک متغیر، عبارت یا مقدار باشد، مقدار تعریف نشده ای بر می گرداند. مثال:

اعداد در جاوا اسکریپت