اعداد در جاوا اسکریپت
در این بخش به بررسی اعداد در جاوا اسکریپت می پردازیم، در جاوا اسکریپت، کار با اعداد اهمیت زیادی دارد؛ چراکه تقریباً در تمام برنامههای کاربردی به نوعی با اعداد سر و کار داریم. این زبان برنامهنویسی، برای مدیریت اعداد، ویژگیها و توابع متنوعی ارائه میدهد که امکان انجام عملیات مختلف از جمله محاسبات ساده، عملیات ریاضی پیچیده و حتی پردازش دادههای آماری را به برنامهنویسان میدهد. برای مثال، تصور کنید که در حال توسعهی یک اپلیکیشن حسابداری هستید. در این حالت، نیاز به استفاده از روشهای دقیق برای محاسبه، گرد کردن، و مقایسهی اعداد خواهید داشت. شناخت دقیق نحوهی کار با اعداد، کمک میکند تا مشکلات احتمالی مانند محدودیتهای دقیق اعداد اعشاری و یا خطاهای احتمالی ناشی از گرد کردن را برطرف کنید.
یکی از ویژگیهای بارز جاوا اسکریپت این است که تمام انواع اعداد (صحیح، اعشاری و …) به صورت یک نوع داده به نام Number ذخیره میشوند. این موضوع میتواند هم مزیت و هم چالشی برای برنامهنویسان باشد؛ چراکه گاهی اوقات نیاز به استفاده از اعداد با دقت بالا یا بررسی دقیق نوع دادهها داریم. در این مقاله، به بررسی عمیق ویژگیها و امکانات مرتبط با اعداد در جاوا اسکریپت پرداخته و مثالهایی را نیز ارائه خواهیم داد تا مفاهیم به شکل دقیقتری قابل درک باشند.
۱. نوع دادهی Number در جاوا اسکریپت
در جاوا اسکریپت، تنها یک نوع دادهی عددی به نام Number وجود دارد که برای ذخیرهی تمام انواع اعداد، از اعداد صحیح گرفته تا اعشاری، به کار میرود. این نوع داده از استاندارد IEEE 754 استفاده میکند و در محدودهی -2^53 + 1 تا 2^53 - 1 قابل استفاده است. با توجه به این محدوده، مقادیری که خارج از این بازه قرار بگیرند، دقت خود را از دست میدهند و به عنوان “Infinity” یا “NaN” نمایش داده میشوند.
مثال:
let num1 = 42; // یک عدد صحیح
let num2 = 3.14; // یک عدد اعشاری
let num3 = 1 / 0; // بازگشت Infinity
let num4 = NaN; // عددی که به عنوان Not a Number شناخته میشوددر مثال بالا، num1 و num2 دو نمونه از اعداد صحیح و اعشاری در جاوا اسکریپت هستند. اما num3 به دلیل تقسیم بر صفر، مقدار Infinity و num4 مقدار NaN خواهد داشت که نشاندهندهی عدد نامعتبر است. استفاده از NaN زمانی رایج است که محاسبات دچار خطا شده باشند، مثلاً زمانی که سعی میکنید یک عدد را به یک رشته تبدیل کنید.
۲. اعداد صحیح و اعشاری
در جاوا اسکریپت، اعداد اعشاری و صحیح با نوع دادهی مشترکی (Number) ذخیره میشوند. این ویژگی باعث شده تا نیازی به تفکیک جداگانهی این دو نوع عدد نباشد. با این حال، برای کار با اعداد اعشاری باید به نکات خاصی دقت کرد، زیرا محاسبات اعشاری ممکن است با خطای گرد کردن همراه باشد.
مثال:
let result = 0.1 + 0.2;
console.log(result); // 0.30000000000000004در مثال بالا، به دلیل محدودیتهای ذخیرهی اعشار در حافظهی کامپیوتر، جمع ۰.۱ و ۰.۲ برابر با ۰.۳ نمیشود و به جای آن، مقدار 0.30000000000000004 نمایش داده میشود. برای حل این مشکل، معمولاً از toFixed یا toPrecision استفاده میشود تا تعداد اعشار کنترل شود.
۳. شیء Math در جاوا اسکریپت
جاوا اسکریپت یک شیء داخلی به نام Math دارد که شامل توابعی است که برای انجام عملیات ریاضی پیچیدهتر از محاسبات ساده استفاده میشوند. این توابع شامل عملیاتهایی مانند محاسبهی توان، ریشهی دوم، گرد کردن و توابع مثلثاتی هستند.
توابع پرکاربرد:
Math.round()برای گرد کردن اعدادMath.sqrt()برای محاسبهی ریشهی دومMath.pow()برای محاسبهی توانMath.abs()برای محاسبهی قدر مطلق
مثال:
در این مثال، از Math.abs برای به دست آوردن قدر مطلق num و از Math.round برای گرد کردن استفاده شده است. همچنین با Math.pow، ۲ به توان ۳ محاسبه شده و با Math.sqrt، ریشهی دوم عدد ۱۶ محاسبه شده است.
۴. BigInt: کار با اعداد بزرگ در جاوا اسکریپت
در نسخههای جدید جاوا اسکریپت، نوع دادهای به نام BigInt معرفی شده است که امکان ذخیرهی اعداد بزرگتر از محدودهی Number را فراهم میکند. این نوع داده برای مواقعی که نیاز به انجام محاسبات دقیق با اعداد بزرگ است، بسیار مفید است.
مثال:
در این مثال، bigNumber یک عدد بزرگ است که با پسوند n تعریف شده و در نتیجه، به عنوان BigInt در نظر گرفته میشود. برای محاسبه و استفاده از BigInt باید از همان پسوند n در عملیات استفاده کرد.
۵. کار با Infinity و NaN
در جاوا اسکریپت، Infinity و NaN به عنوان مقادیر خاص برای نمایش نتایج نامحدود یا خطاهای محاسباتی استفاده میشوند. Infinity زمانی رخ میدهد که محاسبهای خارج از محدودهی مجاز عددی انجام شود و NaN زمانی ظاهر میشود که نتیجهی محاسبه قابل تعریف نباشد.
مثال:
در مثال بالا، 1 / 0 مقدار Infinity را برمیگرداند، و Math.sqrt(-1) به دلیل اینکه ریشهی دوم یک عدد منفی را نمیتوان محاسبه کرد، مقدار NaN را بازمیگرداند. همچنین، با استفاده از isNaN میتوان بررسی کرد که آیا نتیجهی یک محاسبه، عدد است یا خیر.
منابع و مراجع
برای کسب اطلاعات بیشتر و آشنایی با جزئیات بیشتر در خصوص اعداد در جاوا اسکریپت، میتوانید به منابع زیر مراجعه کنید:
- MDN Web Docs
- JavaScript Info
- کتاب “JavaScript: The Good Parts” از Douglas Crockford
آیا این مطلب برای شما مفید بود ؟




