ریاضی در جاوااسکریپت
خوش اومدین به نهمین جسه از دوره آموزش رایگان چاوا اسکریپت. در این بخش به بررسی ریاضی در جاوا اسکریپت و عملیات ریاضی در زبان برنامه نویسی جاوا اسکریپت میپردازیم. عبارات ریاضی یکی از محتویات پرکاربرد زبانهای برنامه نویسی هستن و جاوا اسکریپت هم از این قاعده مستثنی نیست. به همین دلیل عملگرهای محاسباتی اصلی مانند جمع و تفریق و ضرب و تقسیم در همه زبانهای برنامه نویسی پشتیبانی میشن. ما با همین عملگرهای ساده میتونیم عبارات و توابع پیچیده ریاضی رو تولید کنیم. در این بخش توضیات لازم در مورد عملگرهای ریاضی در جاوااسکریپت رو خدمتتون تقدیم میکنم.
عملگرهای اصلی ریاضی در جاوااسکریپت
همانطور که گفتم عملگرهای اصلی ریاضی توسط جاوااسکریپت پشتیبانی میشه. علاوه بر اون عملگرهای ریاضی دیگه ای هم توی جاوااسکریپت داریم که توی جدول زیر میتونید همه این عملگرها رو ببینید:
عملگر | توضیحات |
+ | جمع |
– | تفریق |
* | ضرب |
/ | تقسیم |
% | باقی مانده تقسیم |
++ | افزایش یک واحد |
— | کاهش یک واحد |
عملیات ریاضی در جاوااسکریپت
عملیات ریاضی طبیعتا روی اعداد انجام میشود. این اعداد میتونن بصورت مستقیم تعریف بشن و میتونن بصورت متغیر باشند.
مثال زیر رو ببینید:
var x = 100 + 50;
در مثال بالا ما بصورت مستقیم از اعداد استفاده کردیم. توی مثال زیر از متغیرها برای یک عملیات ریاضی استفاده کردم:
var x = a + b;
همینطور میتونیم از ترکیب اعداد و متغیرهای عددی استفاده کنیم:
var x = (100 + 50) * a;
عملگرها و عملوندها در جاوا اسکریپت
توی یه عبارت محاسباتی، اعداد یا متغیرهای عددی که توی عملیات ریاضی ازشون استفاده میکنیم عملوند هستند و علائمی که ازشون استفاده میکنیم برای محاسبات رو عملگر مینامیم.
عملوند | عملگر | عملوند |
۱۰۰ | + | ۵۰ |
عملگر جمع در جاوا اسکریپت
از عملگر جمع (+) برای جمع دو عدد استفاده میشود:
var x = 5;
var y = 2;
var z = x + y;
عملگر تفریق در جاوا اسکریپت
از عملگر تفریق (-) برای تفریق استفاده میشود:
var x = 5;
var y = 2;
var z = x - y;
عملگر ضرب در جاوا اسکریپت
از عملگر ضرب (*) برای ضرب اعداد در هم استفاده میشود:
var x = 5;
var y = 2;
var z = x * y;
عملگر تقسیم در جاوا اسکریپت
از عملگر تقسیم برای تقسیم اعداد برهم استفاده میشود:
var x = 5;
var y = 2;
var z = x / y;
محاسبه باقیمانده تقسیم در جاوا اسکریپت
از عملگر % برای محاسبه باقیمانده تقسیم یک عدد بر یک عدد دیگه استفاده میشه:
var x = 5;
var y = 2;
var z = x % y;
در مثال بالا باقیمانده تقسیم عدد ۵ بر ۲ برابر ۱ است که در متغیر z ذخیره میشه.
عملگر افزایش در جاوا اسکریپت
عملگر ++ مقدار متغیر یا عدد رو یک واحد بیشتر میکنه:
var x = 5;
x++;
var z = x;
با توجه به اینکه مقدار x در خط دوم یه واحد اضافه شده، زمانی که اون رو داخل z میریم مقدار ۶ رو داره.
عملگر کاهش در جاوا اسکریپت
عملر — مقدار متغیر یا عدد رو یک واحد کمتر میکنه:
var x = 5;
x--;
var z = x;
اولویت عملگرها در جاوا اسکریپت
یکی از مباحث مهم در محاسبات ریاضیات توی جاوا اسکریپت بحث اولویت عملگرهاست. این اولویت بندی، ترتیب انجام عملگرها رو مشخص میکنه و اگر اولویت ها رو نشناسیم ممکنه که نتیجه دلخواه رو بدست نیاریم. مثال زیر رو ببینید:
var x = 100 + 50 * 3;
حاصل عبارت بالا ۱۵۰ * ۳ هست یا ۱۰۰ + ۱۵۰ ؟ این دو مقدار با همدیگه تفاوت دارن.
توی قوانین ریاضیات اولویت ضرب از جمع بالاتر هست، بنابراین ابتدا عملیات ضرب انجام میشه و بعد عملیات جمع. جاوا اسکریپت هم از همین قوانین تبعیت میکنه. اگه قصد داشته باشیم که ابتدا جمع انجام بشه میتونیم به روش زیر اولویت ها رو تغییر بدیم:
var x = (100 + 50) * 3;
از اونجایی که پرانتز اولویت بیشتری نسبت به ضرب داره ابتدا عبارت داخل پرانتز محاسبه میشه. اگه عملگرهای زیادی با اولویت یکسان تو یه عبارت باشه، اولویت محاسبه از سمت چپ به راست هست.
لیست کامل اولویت عملگرها در جاوا اسکریپت
مقدار | عملگر | توضیحات | مثال |
۲۰ | ( ) | گروه بندی عبارات | (۳ + ۴) |
۱۹ | . | عضو | person.name |
۱۹ | [] | عضو | person[“name”] |
۱۹ | () | فراخوانی تابع | myFunction() |
۱۹ | new | جدید | new Date() |
۱۷ | ++ | پیشوند افزایشی | i++ |
۱۷ | — | پیشوند کاهشی | i– |
۱۶ | ++ | پسوند افزایش | ++i |
۱۶ | — | پسوند افزایش | –i |
۱۶ | ! | نقیض | !(x==y) |
۱۶ | typeof | نوع | typeof x |
۱۵ | ** | انعکاس(ES7) | ۱۰ ** ۲ |
۱۴ | * | ضرب | ۱۰ * ۵ |
۱۴ | / | تقسیم | ۱۰ / ۵ |
۱۴ | % | باقی مانده تقسیم | ۱۰ % ۵ |
۱۳ | + | جمع | ۱۰ + ۵ |
۱۳ | – | تفریق | ۱۰ – ۵ |
۱۲ | << | شیف چپ | x << 2 |
۱۲ | >> | شیفت راست | x >> 2 |
۱۲ | >>> | شیفت راست (unsigned) | x >>> 2 |
۱۱ | < | کوچکتر | x < y |
۱۱ | <= | کوچکتر مساوی | x <= y |
۱۱ | > | بزرگتر | x > y |
۱۱ | >= | بزرگتر مساوی | x >= y |
۱۱ | in | ویژگی آبجکت | “PI” in Math |
۱۱ | instanceof | نمونه از شیء | instanceof Array |
۱۰ | == | مقایسه | x == y |
۱۰ | === | مقایسه دقیق | x === y |
۱۰ | != | نابرابری | x != y |
۱۰ | !== | نابرابری دقیق | x !== y |
۹ | & | AND بیتی | x & y |
۸ | ^ | XOR بیتی | x ^ y |
۷ | | | OR بیتی | x | y |
۶ | && | AND منطقی | x && y |
۵ | || | OR منطقی | x || y |
۴ | ? : | شرط | ? “Yes” : “No” |
۳ | += | تخصیص | x += y |
۳ | -= | تخصیص | x -= y |
۳ | *= | تخصیص | x *= y |
۳ | %= | تخصیص | x %= y |
۳ | <<= | تخصیص | x <<= y |
۳ | >>= | تخصیص | x >>= y |
۳ | >>>= | تخصیص | x >>>= y |
۳ | &= | تخصیص | x &= y |
۳ | ^= | تخصیص | x ^= y |
۳ | |= | تخصیص | x |= y |
۲ | yield | ارسال تابع | yield x |
۱ | , | کاما | ۵ , ۶ |
توی جدول بالا، عملگری که اولویت بالاتری داره زودتر اجرا میشه.