
همونطور که اطلاع دارید در جلسه قبل در مورد تغییرات و امکانات جدید Number در ES6 توضیحاتی رو قرار دادیم و شما رو بصورت کامل با اونا آشنا کردیم. در این جلسه میخوایم در مورد تغییرات و امکانات جدیدی که در ES6 برای شئ Math معرفی شده اند، توضیحاتی رو قرار بدیم. برای این آموزش از این لینک به عنوان منبع استفاده میکنیم.
همونطور که میدونین شئ Math ثابتها و متدهای مفید و کاربردی رو داره که با استفاده از اونا میتونین محاسبات ریاضی رو به راحتی انجام بدین. برخلاف دیگر اشیائ سراسری یا Global که در Javascript وجود دارند (مانند Number)، شئ Math یک تابع سازنده یا Constructor نیست.
همه ویژگی ها و متدهای مربوط به Math بصورت استاتیک یا Static هستند و بصورت مستقیم میتونین به اونا دسترسی داشته باشید و نیازی به نمونه سازی یا Instantiate نیست.
شئ Math ویژگی های زیادی (همگی آنها ثابت یا Constant هستند) رو دارد که عبارتند از:
دو مورد بالا رو بعنوان نمونه قرار دادیم و خودتون میتونین بقیه ثابتها رو مطالعه کنید. این موارد در ES5 نیز وجود داشتند.
در ES6 تعدادی متد جدید به شئ Math اضافه شده که کاربردهای زیاد دارند و میتونین محاسبات رو با استفاده از اونا سریعتر و بهتر انجام بدین.
همونطور که اطلاع دارید در ES5 توابعی برای گرفتن کسینوس (Math.cos()) و سینوس و ... وجود داشت. در ES6 توابع مربوط به گرفتن کسینوس هایپربولیک و ... نیز اضافه شده است.
Math.cosh(0); // 1 Math.cosh(1); // 1.5430806348152437 Math.cosh(-1); // 1.5430806348152437 |
hypot مخفف hypotenuse یا وتر مثلث قائم الزاویه هست. با استفاده از این متد مثلا میتونین اندازه 2 ضلع مثلث قائم الزاویه رو بهش بدین و این متد اندازه وتر رو برای شما محاسبه میکنه و برمی گردونه. هر تعداد عددی رو به این متد پاس بدین، این متد در ابتدا همه اونا رو به توان 2 میرسونه و با هم دیگه جمع میکنه و بعد از نتیجه اونا جذر ریشه 2 میگیره. مثالهای زیر رو در نظر بگیرید:
Math.hypot(3, 4); // 5 Math.hypot(3, 4, 5); // 7.0710678118654755 Math.hypot(); // 0 Math.hypot(NaN); // NaN Math.hypot(3, 4, 'foo'); // NaN, +'foo' => NaN Math.hypot(3, 4, '5'); // 7.0710678118654755, +'5' => 5 Math.hypot(-3); // 3, the same as Math.abs(-3) |
با استفاده از این متد میتونین علامت یک عدد رو مشخص کنید. خروجی این متد یکی از موارد زیر است:
مثالهای زیر رو در نظر بگیرید:
Math.sign(3); // 1 Math.sign(-3); // -1 Math.sign('-3'); // -1 Math.sign(0); // 0 Math.sign(-0); // -0 Math.sign(NaN); // NaN Math.sign('foo'); // NaN Math.sign(); // NaN |
این متد مخفف truncate است و قسمت صحیح یا کامل عدد رو برمی گردونه و هر گونه اعشار مربوط به اون رو حذف میکنه. پس چه عدد منفی باشه چه مثبت برای این متد فرقی نمیکنه و اعشار مربوط به اون حذف میشه. مثالهای زیر رو در نظر بگیرید:
Math.trunc(13.37); // 13 Math.trunc(42.84); // 42 Math.trunc(0.123); // 0 Math.trunc(-0.123); // -0 Math.trunc('-1.123'); // -1 Math.trunc(NaN); // NaN Math.trunc('foo'); // NaN Math.trunc(); // NaN |
همونطور که مشاهده میکنید اگر مقدار وارد شده یک عدد نباشد، NaN برگشت داده میشه.