در این جلسه قصد داریم با نحوهی جمع و تفریق و ضرب و تقسیم متغیرها آشنا شویم. این اعمال تنها روی متغیرهای عددی قابل اجرا هستند. همچنین در ادامه با اپراتورهایی مثل += آشنا خواهیم شد.
علامت = به معنای دادن یک مقدار به یک متغیر است! نه متغیر بیشتر میشود و نه کمتر و همان چیزی است که در آنطرف مساوی بدان داده شده است!
مثال:
var x = 10;
برای جمع دو متغیر، کافی است بین آنها علامت + قرار دهیم. مثال:
var x = 10;
var y = 3;
var z = x+y
console.log(z) //خروجی نهایی مساوی ۱۳ خواهد بود.
عبارت بالا دقیقا مانند این است که بنویسیم:
var x = x + 5
در این حالت مقدار سمت چپ به اندازهای که در سمت راست نوشته شده است، افزوده میشود. مثلا اگر یک متغیر مثل var X = 10 داشته باشیم، با این کار خواهیم داشت:
var x = 10;
x += 5;
console.log(x)
در نهایت مقدار X = 15 خواهد بود! یعنی ۱۰ (مقدار اولیه) به علاوه مقداری که بدان اضافه شده است (5).
برای کم کردن دو متغیر، کافی است بین آنها علامت - قرار دهیم. مثال:
var x = 10;
var y = 3;
var z = x-y
console.log(z) //خروجی نهایی مساوی 7 خواهد بود.
عبارت بالا دقیقا مانند این است که بنویسیم:
x = x-2
در این حالت باز هم از مقدار اولیه متغیر، مقداری که در سمت راست آن نوشته شده است، کم میشود. مثلا اگر یک متغیر مثل var X = 10 داشته باشیم، با این کار خواهیم داشت:
var x = 10;
x -= 2;
در این حالت مقدار ایکس برابر با 8 خواهد بود! یعنی همان مقدار اولیه (10) منهای مقداری که در آنطرف مساوی قرار دادهایم (2).
برای ضرب کردن دو متغیر, کافی است بین آنها علامت * قرار دهیم. مثال:
var x = 10;
var y = 3;
var z = x*y
console.log(z) //خروجی نهایی مساوی ۳۰ خواهد بود.
عبارت بالا دقیقا مانند این است که بنویسیم:
x = x*5
در این حالت باز هم مقدار اولیه متغیر سرجایش باقی است! فقط به اندازهای که در سمت راست مینویسیم، در مقدار قبلی ضرب میشود. مثلا اگر یک متغیر مثل var X = 10 داشته باشیم، با این کار خواهیم داشت:
var x = 10;
x *= 5;
مقدار نهایی آن برابر خواهد بود با ۵۰ .
برای تقسیم کردن دو متغیر, کافی است بین آنها علامت / قرار دهیم. مثال:
var x = 9;
var y = 3;
var z = x/y
console.log(z) //خروجی نهایی مساوی 3 خواهد بود.
عبارت بالا دقیقا مانند این است که بنویسیم:
x = x/5
در این حالت باز هم مقدار اولیه متغیر سرجایش باقی است! فقط به اندازهای که میگوییم، بر مقدار قبلی آن تقسیم میشود. مثلا اگر یک متغیر مثل var X = 10 داشته باشیم، با این کار خواهیم داشت:
var x = 10;
x /= 5;
مقدار نهایی آن برابر خواهد بود با 2.
برای محاسبه باقیمانده تقسیم بین دو متغیر کافی است بین آنها علامت ٪ قرار دهیم. مثال:
var x = 10;
var y = 3;
var z = x%y
console.log(z) //خروجی نهایی مساوی ۱ خواهد بود.
این عبارت دقیقا مانند این است که بنویسیم:
var x = 10
x = x%5
در این حالت باز هم مقدار اولیه متغیر سرجایش باقی است! فقط به اندازهای که میگوییم، بر مقدار قبلی آن تقسیم میشود و باقیمانده این تقسیم نوشته میشود. مثلا اگر یک متغیر مثل var X = 10 داشته باشیم، با این کار خواهیم داشت:
var x = 10;
x %= 5;
هر نوع داده در جاوا اسکریپت (استرینگها، اعداد و ...) ابزارها و امکانات مخصوص خودش را دارد. به این ابزارها و قابلیتهای مخصوص متد میگویند. متدها در واقع به شما کمک میکنند تغییرات و اتفاقات پیشفرضی را که در زبان جاوا اسکریپت روی متغیرها اعمال شده است مورد استفاده قرار دهید. در زیر با متدهای قابل استفاده در اعداد بیشتر آشنا خواهیم شد.
این متد در واقع اعداد را به استرینگ تبدیل میکند. همانطور که گفتیم، اعداد قابل جمع و تفریق هستند ولی استرینگها خیر. پس دقت کنید که در حین تبدیل یک عدد به استرینگ، در واقع خاصیت جمع و تفریق آن را از دست خواهید داد.
کار این متد رند کردن اعداد است. زمانی که از این متد استفاده میکنید میتوانید بگویید میزان رند کردن عدد به چه صورت باشد و تا چه مقدار رند شود. در واقع عددی که در داخل پرانتز این متد نوشته میشود، میزان رند شدن آن را نمایش میدهد.
var number = 177.1234
number .toFixed()
در این حالت پرانتز را خالی گذاشتهایم پس عدد بدون اعشار رند میشود و عدد ما یک عدد صحیح خواهد شد.
number .toFixed(6) // 177.123400
در این حالت عدد ما تا شش رقم رند میشود.
number .toFixed(1) //177.1
در این حالت نیز عدد ما تا یک رقم ممیز اعشار یعنی ۱۷۷.۱ رند شده است.
خصوصا در هنگام محاسبه کردن، نیاز داریم که متعیرهای ما از جنس عدد باشند نه استرینگ! اینجا است که متدهایی وسط میآیند که کارشان تبدیل متغیرهای دیگر به متغیرهای عددی است. برای تبدیل یک متغیر از جنس استرینگ به یک متغیر عددی میتوانیم از متد parseInt() استفاده کنیم. هر چه درون پرانتز این متد بنویسیم به عدد تبدیل خواهد شد. مثالهای زیر گویای این موضوع هستند. در این مثالها ابتدا یک متغیر با نام x تعریف کردهایم.
x = 1
حالا میخواهیم این متغیر را با متغیر دیگری به نام y جمع کنیم.
y = "2"
حالا متغیر z حاصل جمع این دو عبارت را نمایش میدهد.
z = x + y
console.log(z)
همانطور که میبینید حاصل جمع این دو عبارت به جای عدد ۳ عبارت ۱۲ میشود. چرا؟ چون یک طرف این جمع استرینگ و متن است و یک طرف عدد و یک عدد و یک استرینگ با هم جمع نمیشوند. بلکه در کنار هم قرار میگیرند و حاصل آنها به جای جمع شدن، به هم چسبیدن است. راه حل این مشکل تبدیل عبارت y به یک عدد است! اینجا است که متد parseInt() به کمک شما میآید. برای این کار کافی است عبارت را مطابق مثال بنویسید.
parseInt(y)
ولی یک نکته مهم در این قسمت وجود دارد که در کل نوشتن جاوا اسکریپت باید آن را فرا بگیرید. در واقع درست است که ما متغیر y را تغییر دادهایم ولی باید مقدار جدیدش را در جایی ذخیره کنیم! چه جایی بهتر از خود y! پس به جای عبارت بالا اینگونه مینویسیم:
y = parseInt(y)
بدین ترتیب مقدار جدید y (که همان عددی شدن آن است) مجددا در y ذخیره میشود.
این متد همانند متد parseInt() است با این تفاوت که شما هر چیزی را از این طریق میتوانید به عدد تبدیل کنید! هر چیزی حتی تاریخ! به مثالهای زیر میکنیم:
x = true; Number(x);
// مقدار نهایی ایکس برابر ۱ است
x = false; Number(x);
//مقدار نهایی ایکس برابر ۰ است
حالا که با متغیرهای عددی آشنا شدهاید وقت آن رسیده است تا حسابی خود را درگیر این متغیرها کنید! چون هنوز مباحث بسیار زیادی از جاوا اسکریپت ناگفته مانده است، انتظار ساختن یک ماشین حساب (بهعنوان معمولترین تمرین دوره جاوا اسکریپت) از شما نداریم؛ ولی انتظار داریم توانایی نوشتن یک برنامه سادهتر را داشته باشید! برنامهای که از آن صحبت میکنیم به صورت زیر است:
یک برنامه بنویسید که بتواند درصد تخفیف اعمالشده روی محصولات یک فروشگاه و قیمت نهایی را محاسبه کند. از آنجا که هنوز نحوهی دریافت متغیرها از طریق فرم در اچتیامال را یاد نگرفتهایم ،میتوانید درصد تخفیف را بهصورت پیشفرض در یک متغیر مثل (var off = 10) ذخیره کنید.
در صورتی که خودتان کمی فسفر سوزاندهاید و میخواهید جواب آخر را چک کنید، تصمیم داریم نحوه نوشتن این برنامه بسیار ساده را به شما بگوییم.
مرحله اول: تمامی متغیرهای لازم برای برنامه را در شروع آن تعریف میکنیم. مطمئنا یکی از متغیرهای اصلی ما در این بخش، درصد تخفیف است. پس یک متغیر به نام var off = 10 تعریف میکنیم.
var off = 10;
حالا وقت آن رسیده است که قیمتها را محاسبه کنیم. همانطور که گفتیم، ما هنوز نحوه استفاده از فرمها و دریافت دادهها از کاربر از این طریق را یاد نگرفتهایم. پس نزدیکترین راهحل پیش روی ما، استفاده از یک متغیر دیگر به نام price است. این متغیر بعدها باید بهصورت داینامیک و بر اساس مبلغ واردشده توسط کاربر در فرم ایجاد شود؛ ولی فعلا به یک متغیر ثابت که توسط خودمان تغییر میکند رضایت میدهیم.
مثلا برای یک محصول دو هزار تومانی یک متغیر عددی تعریف میکنیم و مقدار قیمت دلخواه بدان میدهیم:
var price = 2000
حالا برای محاسبه درصد تخفیف، کافی است متغیر off را بر ۱۰۰ تقسیم کنیم تا بهصورت درصد در بیاید. سپس مقدار نهایی این متغیر را در مقدار قیمت محصول ضرب کنیم. به همین سادگی!
برای تقسیم off بر ۱۰۰ دو راه پیش رو داریم!
راه حل اول: استفاده از همان متغیر قبلی
off = off/100
دقت کنید که چون متغیر off یک بار تعریف شده است، نیازی به تعریف مجدد آن نیست و کافی است در زمانی که بدان نیاز داریم نام آن را بنویسیم و مقدار جدیدی بدان اختصاص دهیم.
راه حل دوم: استفاده از متغیر جدید
یک راه دیگر این است که متغیر اول را دست نزنیم و یک متغیر جدید بسازیم. تصمیمگیری برای ایجاد یک متغیر جدید کاملا بسته به برنامه شما و تحلیل شما از منطق برنامه دارد. اگر مقدار این متغیر باید همه جا ثابت باشد و جای دیگری مورد استفاده قرار بگیرد، پس نباید با روش اول آن را تغییر دهید؛ ولی در غیر این صورت میتوانید هر زمان خواستید مقدار آن را عوض کنید.
var finalOff = 0ff/100
در آخرین مرحله بعد از تعریف متغیرهای مربوط به تخفیف، کافی است مقدار قیمت را در مقدار تخفیف ضرب کنیم:
var finalPrice = off*price
یا
var finalPrice = off*finalOff
از متغیرهای عددی در کارهای بسیاری میتوان بهره برد. از محاسبات ریاضی ساده در بخشهای محاسباتی گرفته تا محاسبات پیچیده در برنامههای پیچیدهتر... ما در دوره فعلی تمرکز خود را روی سادهترین متدها و امکانات متغیرهای عددی قرار دادهایم؛ ولی در صورت علاقه میتوانید نکات پیشرفتهتر و کاملتر از این موضوع را در وبسایت w3schools مطالعه کنید.