بازگشت به دوره

آشنایی با شئ Math

انجام محاسبات ریاضی در برنامه‌نویسی، امری بسیار معمول و مرسوم است. پیش از این با چند عملگر ریاضی در جاوا اسکریپت آشنا شدیم که اعمال پایه‌ی ریاضی مانند جمع، تفریق، ضرب و ... را انجام می‌دادند. البته در بسیاری از برنامه‌ها همین اعمال کافی هستند و نیازی به محاسبات پیچیده‌تر نیست. اما در برنامه‌هایی که به نوعی برای حل مسائل ریاضی طراحی شده‌اند. و یا در برنامه‌هایی که برای عملکرد صحیح بخش خاصی از برنامه، باید یک مسئله‌ی ریاضی حل شود. نیاز به انجام محاسبات پیچیده‌تری خواهیم داشت.

در جاوا اسکریپت شیئی به نام Math وجود دارد که با استفاده از خاصیت‌ها و متدهای این شئ می‌توان محاسبات ریاضی پیچیده‌تری را انجام داد. قبل از شروع کار با این شئ، باید به این نکته اشاره شود که شئ Math با تمام اشیائی که پیش از این معرفی شده‌اند از برخی جهات متفاوت است. این تفاوت‌ها عبارتند از :

توجه : در ادامه‌ی این بخش از برخی اصطلاحات و مفاهیم ریاضی استفاده شده است. فرض بر این است که خواننده با معنی و مفهوم این اصطلاحات در ریاضیات آشنا می‌باشد.

 

خاصیت‌های شئ Math

شئ Math دارای ۸ خاصیت است. این خاصیت‌ها مقدار برخی ثابت‌های مهم ریاضی را در خود نگهداری می‌کنند که عبارتند از :

نمونه‌های از به کارگیری این خاصیت‌ها در کنسول را در قطعه کد زیر می‌بینید.


Math.PI;
← 3.141592653589793
Math.E;
← 2.718281828459045
Math.LN2;
← 0.6931471805599453
 

متدهای شئ Math

شئ Math دارای تعداد زیادی متد برای انجام انواع محاسبات مختلف ریاضی است. بیشتر این متدها به همراه کاربردشان در لیست زیر آمده‌اند.

نکته : در تمام توابع مثلثاتی، واحد اندازه‌گیری زاویه رادیان است. در صورت نیاز به تبدیل مقدار زاویه از رادیان به درجه و یا از درجه به رادیان می‌توان از رابطه‌ی Deg = Rad * 180 / Math.PI استفاده کرد.

نمونه‌هایی از کاربرد متدهای شئ Math را در قطعه کد زیر مشاهده می‌کنید. همچنین می‌توانید مثال‌های بیشتری در رابطه با این متدها را اینجا مشاهده کنید.


Math.abs(-3.3);
← 3.3
Math.sqrt(16);
← 4
Math.cbrt(8);
← 2
Math.sin(Math.PI);
← 0
Math.sin(Math.PI / 2);
← 1
Math.sin(Math.PI / 4);
← 0.7071067811865475
Math.sin(30 * Math.PI / 180);			// تبدیل درجه به رادیان
← 0.49999999999999994
Math.acos(1);
← 0
Math.ceil(2.2);
← 3
Math.ceil(-2.2);
← -2
Math.floor(2.2);
← 2
Math.floor(-2.2);
← -3
Math.trunc(2.2);
← 2
Math.trunc(-2.2);
← -2
Math.random();
← 0.2556632409113211
Math.random();
← 0.9150376776449138
Math.hypot(1 , 2 , 5 , 4);
← 6.782329983125269
Math.clz32(30);						// 30 = 00000000000000000000000000011110
← 27
Math.pow(2 , 10);
← 1024
Math.min(2 , 10 , -3 , 11);
← -3
Math.max(2 , 10 , -3 , 11);
← 11

نکته : در برخی موارد ممکن است نتایج محاسبات ریاضی کاملاً دقیق نبوده و دارای خطا باشد. مثلاً در قطعه کد فوق می‌بینید که سینوس زاویه ۳۰ درجه که مقدار دقیق آن ۰.۵ است، با مقداری خطا همراه است. البته میزان این خطا بسیار کوچک و قابل صرف نظر کردن است. اما باید از وجود این خطا آگاه باشید.