آموزش ویژگی های ECMAScript 6 (جلسه 25) : تغییرات و امکانات جدید شئ Math



visibility  
mode_comment   ۲

همونطور که اطلاع دارید در جلسه قبل در مورد تغییرات و امکانات جدید Number در ES6 توضیحاتی رو قرار دادیم و شما رو بصورت کامل با اونا آشنا کردیم. در این جلسه میخوایم در مورد تغییرات و امکانات جدیدی که در ES6 برای شئ Math معرفی شده اند، توضیحاتی رو قرار بدیم. برای این آموزش از این لینک به عنوان منبع استفاده میکنیم.

تغییرات و امکانات جدید Math

همونطور که میدونین شئ Math ثابتها و متدهای مفید و کاربردی رو داره که با استفاده از اونا میتونین محاسبات ریاضی رو به راحتی انجام بدین. برخلاف دیگر اشیائ سراسری یا Global که در Javascript وجود دارند (مانند Number)، شئ Math یک تابع سازنده یا Constructor نیست.

همه ویژگی ها و متدهای مربوط به Math بصورت استاتیک یا Static هستند و بصورت مستقیم میتونین به اونا دسترسی داشته باشید و نیازی به نمونه سازی یا Instantiate نیست.

ویژگی های مربوط به Math

شئ Math ویژگی های زیادی (همگی آنها ثابت یا Constant هستند) رو دارد که عبارتند از:

  • Math.E : عدد نپر یا اولر هست که پایه طبیعی لگاریتمها محسوب میشه و مقدار اون تقریبا 2.718 می باشد
  • Math.LN2 : لگاریتم طبیعی عدد 2 که تقریبا برابر با 0.693 می باشد

دو مورد بالا رو بعنوان نمونه قرار دادیم و خودتون میتونین بقیه ثابتها رو مطالعه کنید. این موارد در ES5 نیز وجود داشتند.

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

توابع هذلولی یا Hyperbolic

همونطور که اطلاع دارید در ES5 توابعی برای گرفتن کسینوس (Math.cos()) و سینوس و ... وجود داشت. در ES6 توابع مربوط به گرفتن کسینوس هایپربولیک و ... نیز اضافه شده است.

متخصص جاوا اسکریپت
با جاوا اسکریپت جادوگری کنید! آیا می دونید با زبان جاوااسکریپت می تونید، برای فرانت اند و بک اند وبسایت ها برنامه نویسی کنید؟ همینطور اپلیکیشن دسکتاپ و موبایل بسازید؟ اگر دوست داری اینکارها رو انجام بدی و React, ElectronJS, ReactNative, NodeJS,MongoDB و ... رو تو یه دوره یاد بگیری، متخصص جاوااسکریپت سون لرن رو حتما ببین : متخصص جاوا اسکریپت arrow_back
  • Math.cosh : مقدار کسینوس هایپربولیک یک عدد رو برمی گرداند. مانند:
  • Math.acosh : مقدار معکوس کسینوس هایپربولیک یک عدد رو برمی گرداند.
  • Math.sinh : مقدار سینوس هایپربولیک یک عدد رو برمی گرداند.
  • Math.asinh : مقدار معکوس سینوس هایپربولیک یک عدد رو برمی گرداند.
  • Math.tanh : مقدار تانژانت هایپربولیک یک عدد رو برمی گرداند.
  • Math.atanh : مقدار معکوس تانژانت هایپربولیک یک عدد رو برمی گرداند.

متد Math.hypot

hypot مخفف hypotenuse یا وتر مثلث قائم الزاویه هست. با استفاده از این متد مثلا میتونین اندازه 2 ضلع مثلث قائم الزاویه رو بهش بدین و این متد اندازه وتر رو برای شما محاسبه میکنه و برمی گردونه. هر تعداد عددی رو به این متد پاس بدین، این متد در ابتدا همه اونا رو به توان 2 میرسونه و با هم دیگه جمع میکنه و بعد از نتیجه اونا جذر ریشه 2 میگیره. مثالهای زیر رو در نظر بگیرید:

more  بیشتر بخوانید : ترفندهای پیشرفته jQuery (قسمت 38)

متد Math.sign

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

  • 1 : زمانی که عدد مثبت باشد
  • -1 : زمانی که عدد منفی باشد
  • 0 : زمانی که عدد 0 یا +0 باشد
  • -0 : زمانی که عدد -0 باشد
  • NaN : زمانی که مقدار وارد شده عدد نباشد

مثالهای زیر رو در نظر بگیرید:

متد trunc

این متد مخفف truncate است و قسمت صحیح یا کامل عدد رو برمی گردونه و هر گونه اعشار مربوط به اون رو حذف میکنه. پس چه عدد منفی باشه چه مثبت برای این متد فرقی نمیکنه و اعشار مربوط به اون حذف میشه. مثالهای زیر رو در نظر بگیرید:

همونطور که مشاهده میکنید اگر مقدار وارد شده یک عدد نباشد، NaN برگشت داده میشه.

متدهای دیگه ای نیز اضافه شده اند که در زیر به اونا اشاره میکنیم:

  • Math.cbrt : این متد ریشه سوم یک عدد را برمی گرداند
  • Math.clz32
  • Math.expm1 : تابع نمائی عدد وارد شده رو منهای یک میکنه و بر میگرداند. یعنی exp(x) - 1
  • Math.log2 : لگاریتم پایه 2 عدد وارد شده را برمی گردونه
  • Math.log10 : لگاریتم پایه 10 عدد وارد شده را برمی گردونه
  • Math.log1p : لگاریتم طبیعی (یا لگاریتم بر پایه عدد نپر یا ln) عدد وارد شده به اضافه 1 رو برمی گردونه. یعنی ln(x + 1)
  • Math.imul : ضرب 32 بیتی دو عدد رو برمی گردونه

امیدوارم موارد بیان شده رو به خوبی یاد گرفته باشید. برای مطالعه بیشتر در مورد تغییرات اشیائ Number و Math در ES6 میتونین این لینک رو مطالعه کنید.

موفق و پیروز باشید.

یا علی

comment دیدگاه کاربران
حسین

با سلام و احترام

ممنون از وقتی که گذاشتین و این آموزش های خوب رو قرار دادین.

یک سوال:
من یک پترن برای چک کردن حروف فارسی در input دارم و میخوام به جای اینکه در pattern قرار بدم ، داخل یک فانکشن es قرار بدم.
از mach استفاده کردم ولی جواب نداد.
ممنون میشم راهنمایی بفرمایید

محمد اسفندیاری

سلام دوست عزیز
خواهش میکنم
سوالتون رو متوجه نمیشم….مربوط به این جلسه هست؟

ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.