در این بخش از سری آموزش جاوا اسکریپت قصد داریم نحوه انجام عملیات ریاضی در جاوا اسکریپت را شروع کنیم.
استفاده از آبجکت Math
شی Math در جاوا اسکریپت تعدادی از خصوصیات و متدهای کاربردی را برای انجام عملیات ریاضی مثل ایجاد اعداد تصادفی, گردکردن اعداد, ایجاد مقدایر مثل PI و محاسبه و .. را می دهد.
همچنین شامل متدهایی برای عملیات ریاضی که بطور عادی ناممکن یا پیچیده هستند مثل محاسبه سینوس و کوسینوس.
خصوصیت Math.PI
Math.PI
نشان دهنده نسبت دور یک دایره یا همان قطر است. عدد PI (π)
یک ثابت ریاضی است که تقریبا معادل ۳٫۱۴ است Math.PI = π ≈ ۳٫۱۴۱۵۹
اینجا یک مثال از محاسبه محیط دایره با استفاده از خصوصیت Math.PI
است.
1 2 3 4 5 6 7 8 9 10 11 |
// Printing PI value document.write(Math.PI); // Prints: 3.141592653589793 // Function to calculate circle area function calculateCircleArea(radius){ var area = (Math.PI) * radius * radius; return area; } document.write(calculateCircleArea(5)); // Prints: 78.53981633974483 document.write(calculateCircleArea(10)); // Prints: 314.1592653589793 |
نکته: آبجکت Math
در هسته جاوا اسکریپت قرار داد پس می توانیم به متدها و خصوصیات آن بصورت مستقیم دسترسی داشته باشید. شما هرگز نیاز به ساخت شی Math
نخواهید بود چرا که بصورت خودکار توسط مفسر جاوا اسکریپت ایجاد می شود.
دریافت مقدار مطلق (Absolute)
متد Math.abs()
برای محاسبه مقدار مطلق (مثبت) یک عدد استفاده می شود.
1 2 3 4 |
document.write(Math.abs(-1)); // Prints: 1 document.write(Math.abs(1)); // Prints: 1 document.write(Math.abs(-5)); // Prints: 5 document.write(Math.abs(-10.5)); // Prints: 10.5 |
ایجاد اعداد تصادفی
متد Math.random()
با ایجاد عدد تصادفی اعشار از محدوده ۰ به بالا اما شامل ۱ نمی شود, به کار می رود.
به هر حال اسگر یک مقدار عدد تصادفی بین یک و بالاتر از یک را بخواهید, از این راه حا می توانید استفاده کنید:
1 2 3 4 5 6 7 8 9 |
document.write(Math.random()); // Expected output: a number between 0 and 1 // Function to create random integer function getRandomInt(max) { return Math.floor(Math.random() * max); } document.write(getRandomInt(3)); // Expected output: 0, 1 or 2 document.write(getRandomInt(1)); // Expected output: 0 |
محاسبه جزر عدد
متد Math.sqrt()
برای محاسه جزر عدد (Square Root) استفاده می شود.
اگر عدد منفی باشد, مقدار NaN
برگشت داده می شود:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
document.write(Math.sqrt(4)); // Prints: 2 document.write(Math.sqrt(16)); // Prints: 4 document.write(Math.sqrt(0.25)); // Prints: 0.5 document.write(Math.sqrt(-9)); // Prints: NaN /* Function to calculate hypotenuse. Hypotenuse is the longest side of a right-angled triangle. */ function calculateHypotenuse(a, b) { return Math.sqrt((a * a) + (b * b)); } document.write(calculateHypotenuse(3, 4)); // Prints: 5 document.write(calculateHypotenuse(5, 12)); // Prints: 13 |
گرد کردن عدد
شی Math چند متد برای گرد کردن (round) اعداد ارایه می دهد که هر کدام وظیفه خاصی دارند.
متد ceil()
متد Math.ceil()
یک عدد را به بالا (سقف ceil) گرد می کند بنابراین ۳٫۵ می شود ۴ و -۵٫۷ می شود -۵ (چرا که -۵ بزرگتر از -۶ است)
1 2 3 4 5 |
document.write(Math.ceil(3.5)); // Prints: 4 document.write(Math.ceil(-5.7)); // Prints: -5 document.write(Math.ceil(9.99)); // Prints: 10 document.write(Math.ceil(-9.99)); // Prints: -9 document.write(Math.ceil(0)); // Prints: 0 |
متد floor()
متد Math.floor()
عدد را به پایین (کف floor) گرد می کند. بنابراین ۳٫۵ می شود ۳ و -۵٫۷ می شود -۶ (چون -۶ کوچکتر از -۵ است).
1 2 3 4 5 |
document.write(Math.floor(3.5)); // Prints: 3 document.write(Math.floor(-5.7)); // Prints: -6 document.write(Math.floor(9.99)); // Prints: 9 document.write(Math.floor(-9.99)); // Prints: -10 document.write(Math.floor(0)); // Prints: 0 |
متد round()
متد Math.round()
یک عدد را به نزدیکترین عدد صحیح گرد می کند. به اینصورت که اگر بخش اعشاری آن بزرگتر از .۵ باشد به سمت بالا در غیر اینصورت به سمت پایین گرد می کند. بنابراین ۳٫۵ می شود ۴ و -۵٫۷ می شود -۶ و ۴٫۴۹ می شود ۴
1 2 3 4 5 |
document.write(Math.round(3.5)); // Prints: 4 document.write(Math.round(-5.7)); // Prints: -6 document.write(Math.round(7.25)); // Prints: 7 document.write(Math.round(4.49)); // Prints: 4 document.write(Math.round(0)); // Prints: 0 |
پیدا کردن بزرگترین و کوچترین اعداد
متدهای Math.max()
و Math.min()
برای پیدا کردن بزرگترین یا کوچکتری عدد در بین گروهی از عداد استفاده می شود.
1 2 3 4 5 |
document.write(Math.max(1, 3, 2)); // Prints: 3 document.write(Math.max(-1, -3, -2)); // Prints: -1 document.write(Math.min(1, 3, 2)); // Prints: 1 document.write(Math.min(-1, -3, -2)); // Prints: -3 |
همچنین می توانید حداکثر و حداقل مقادیر داخل یک آرایه یا آبجکت آرایه مانند با متد apply()
پیدا کنید.
1 2 3 4 |
var numbers = [1, 3, 2]; document.write(Math.max.apply(null, numbers)); // Prints: 3 document.write(Math.min.apply(null, numbers)); // Prints: 1 |
راه حتی بهتری نیز وجود دارد. در ECMAScript 6 می توانید همچنین موردی را با استفاده از اپراتور ...
مانند مثال زیر انجام بدید
1 2 3 4 |
var numbers = [1, 3, 2]; document.write(Math.max(...numbers)); // Prints: 3 document.write(Math.min(...numbers)); // Prints: 1 |
به توان رساندن عدد
از متد Math.pow()
برای به توان رساندن عدد خاصی می توانید استفاده کنید.
عبارت Math.pow(x, y)
در ریاضی برابر است با xy
که نشان می دهد چند بار (y) پایه x در خود ضرب شود.
1 2 3 4 5 |
document.write(Math.pow(3, 2)); // Prints: 9 document.write(Math.pow(0, 1)); // Prints: 0 document.write(Math.pow(5, -2)); // Prints: 0.04 document.write(Math.pow(16, 0.5)); // Prints: 4 (square root of 4) document.write(Math.pow(8, 1/3)); // Prints: 2 (cube root of 8) |
عملیات مثلثی
شی Math در جاوا اسکریپت چند متد مثلث را مثل sin()
, cos()
, tan()
برای ارایه داده است این متدها در رادیان ها کار می کنند به این معنی که نیاز است هر درجه اندازه گیری شده را قبل از استفاده در π/۱۸۰ ضرب کنید.
از آنجا که رادیان pi برابر ۱۸۰ درجه است: π rad = 180°
بنابراین رادیان π/۲
برابر ۹۰ درجه, رادیان π/۳
برابر ۶۰ درجه و به اینصورت ادامه دارد..
1 2 3 4 5 |
document.write(Math.sin(0 * Math.PI / 180)); // Prints: 0 document.write(Math.sin(90 * Math.PI / 180)); // Prints: 1 document.write(Math.cos(0 * Math.PI / 180)); // Prints: 1 document.write(Math.cos(180 * Math.PI / 180)); // Prints: -1 document.write(Math.tan(0 * Math.PI / 180)); // Prints: 0 |
امیدوارم از آموزش عملیات ریاضی در جاوا اسکریپت نهایت استفاده را برده باشید.
هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .
موفق باشید.