اعداد در جاوا اسکریپت
در این بخش به بررسی اعداد در جاوا اسکریپت می پردازیم، در جاوا اسکریپت، کار با اعداد اهمیت زیادی دارد؛ چراکه تقریباً در تمام برنامههای کاربردی به نوعی با اعداد سر و کار داریم. این زبان برنامهنویسی، برای مدیریت اعداد، ویژگیها و توابع متنوعی ارائه میدهد که امکان انجام عملیات مختلف از جمله محاسبات ساده، عملیات ریاضی پیچیده و حتی پردازش دادههای آماری را به برنامهنویسان میدهد. برای مثال، تصور کنید که در حال توسعهی یک اپلیکیشن حسابداری هستید. در این حالت، نیاز به استفاده از روشهای دقیق برای محاسبه، گرد کردن، و مقایسهی اعداد خواهید داشت. شناخت دقیق نحوهی کار با اعداد، کمک میکند تا مشکلات احتمالی مانند محدودیتهای دقیق اعداد اعشاری و یا خطاهای احتمالی ناشی از گرد کردن را برطرف کنید.
یکی از ویژگیهای بارز جاوا اسکریپت این است که تمام انواع اعداد (صحیح، اعشاری و …) به صورت یک نوع داده به نام 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
آیا این مطلب برای شما مفید بود ؟