۹۷/۲/۳۱، ۱۰:۱۴ عصر
گاهی میخواهیم بهصورت مساوی یک مقدار را به یک متغیر اضافه کنیم. مثلا میخواهیم ۵ تا به یک متغیر اضافه یا کم کنیم! برای آشنایی با نحوهی انجام ریاضیات ساده روی متغیرها در جاوا اسکریپت با ما همراه شوید.
در این جلسه قصد داریم با نحوهی جمع و تفریق و ضرب و تقسیم متغیرها آشنا شویم. این اعمال تنها روی متغیرهای عددی قابل اجرا هستند. همچنین در ادامه با اپراتورهایی مثل += آشنا خواهیم شد.
علامت =
علامت = به معنای دادن یک مقدار به یک متغیر است! نه متغیر بیشتر میشود و نه کمتر و همان چیزی است که در آنطرف مساوی بدان داده شده است!
مثال:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
جمع دو متغیر
برای جمع دو متغیر، کافی است بین آنها علامت + قرار دهیم. مثال:*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
علامت =+
عبارت بالا دقیقا مانند این است که بنویسیم: *محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در این حالت مقدار سمت چپ به اندازهای که در سمت راست نوشته شده است، افزوده میشود. مثلا اگر یک متغیر مثل var X = 10 داشته باشیم، با این کار خواهیم داشت:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در نهایت مقدار X = 15 خواهد بود! یعنی ۱۰ (مقدار اولیه) به علاوه مقداری که بدان اضافه شده است (5).
تفریق دو متغیر:
برای کم کردن دو متغیر، کافی است بین آنها علامت - قرار دهیم. مثال:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
علامت =-
عبارت بالا دقیقا مانند این است که بنویسیم: *محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در این حالت باز هم از مقدار اولیه متغیر، مقداری که در سمت راست آن نوشته شده است، کم میشود. مثلا اگر یک متغیر مثل var X = 10 داشته باشیم، با این کار خواهیم داشت:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در این حالت مقدار ایکس برابر با 8 خواهد بود! یعنی همان مقدار اولیه (10) منهای مقداری که در آنطرف مساوی قرار دادهایم (2).
ضرب دو متغیر
برای ضرب کردن دو متغیر, کافی است بین آنها علامت * قرار دهیم. مثال:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
علامت =*
عبارت بالا دقیقا مانند این است که بنویسیم: *محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در این حالت باز هم مقدار اولیه متغیر سرجایش باقی است! فقط به اندازهای که در سمت راست مینویسیم، در مقدار قبلی ضرب میشود. مثلا اگر یک متغیر مثل var X = 10 داشته باشیم، با این کار خواهیم داشت:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
مقدار نهایی آن برابر خواهد بود با ۵۰ .
تقسیم دو متغیر:
برای تقسیم کردن دو متغیر, کافی است بین آنها علامت / قرار دهیم. مثال:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
علامت =/
عبارت بالا دقیقا مانند این است که بنویسیم: *محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در این حالت باز هم مقدار اولیه متغیر سرجایش باقی است! فقط به اندازهای که میگوییم، بر مقدار قبلی آن تقسیم میشود. مثلا اگر یک متغیر مثل var X = 10 داشته باشیم، با این کار خواهیم داشت:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
مقدار نهایی آن برابر خواهد بود با 2.
محاسبه باقیمانده تقسیم بین دو متغیر:
برای محاسبه باقیمانده تقسیم بین دو متغیر کافی است بین آنها علامت ٪ قرار دهیم. مثال:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
علامت %=
این عبارت دقیقا مانند این است که بنویسیم:*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در این حالت باز هم مقدار اولیه متغیر سرجایش باقی است! فقط به اندازهای که میگوییم، بر مقدار قبلی آن تقسیم میشود و باقیمانده این تقسیم نوشته میشود. مثلا اگر یک متغیر مثل var X = 10 داشته باشیم، با این کار خواهیم داشت:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
متدهای قابل استفاده برای اعداد:
هر نوع داده در جاوا اسکریپت (استرینگها، اعداد و ...) ابزارها و امکانات مخصوص خودش را دارد. به این ابزارها و قابلیتهای مخصوص متد میگویند. متدها در واقع به شما کمک میکنند تغییرات و اتفاقات پیشفرضی را که در زبان جاوا اسکریپت روی متغیرها اعمال شده است مورد استفاده قرار دهید. در زیر با متدهای قابل استفاده در اعداد بیشتر آشنا خواهیم شد.
toString()
این متد در واقع اعداد را به استرینگ تبدیل میکند. همانطور که گفتیم، اعداد قابل جمع و تفریق هستند ولی استرینگها خیر. پس دقت کنید که در حین تبدیل یک عدد به استرینگ، در واقع خاصیت جمع و تفریق آن را از دست خواهید داد.
toFixed()
کار این متد رند کردن اعداد است. زمانی که از این متد استفاده میکنید میتوانید بگویید میزان رند کردن عدد به چه صورت باشد و تا چه مقدار رند شود. در واقع عددی که در داخل پرانتز این متد نوشته میشود، میزان رند شدن آن را نمایش میدهد.
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در این حالت پرانتز را خالی گذاشتهایم پس عدد بدون اعشار رند میشود و عدد ما یک عدد صحیح خواهد شد.
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در این حالت عدد ما تا شش رقم رند میشود.
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در این حالت نیز عدد ما تا یک رقم ممیز اعشار یعنی ۱۷۷.۱ رند شده است.
تبدیل متغیرهای دیگر به عدد:
خصوصا در هنگام محاسبه کردن، نیاز داریم که متعیرهای ما از جنس عدد باشند نه استرینگ! اینجا است که متدهایی وسط میآیند که کارشان تبدیل متغیرهای دیگر به متغیرهای عددی است. برای تبدیل یک متغیر از جنس استرینگ به یک متغیر عددی میتوانیم از متد parseInt() استفاده کنیم. هر چه درون پرانتز این متد بنویسیم به عدد تبدیل خواهد شد. مثالهای زیر گویای این موضوع هستند. در این مثالها ابتدا یک متغیر با نام x تعریف کردهایم.
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
حالا میخواهیم این متغیر را با متغیر دیگری به نام y جمع کنیم.
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
حالا متغیر z حاصل جمع این دو عبارت را نمایش میدهد.
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
همانطور که میبینید حاصل جمع این دو عبارت به جای عدد ۳ عبارت ۱۲ میشود. چرا؟ چون یک طرف این جمع استرینگ و متن است و یک طرف عدد و یک عدد و یک استرینگ با هم جمع نمیشوند. بلکه در کنار هم قرار میگیرند و حاصل آنها به جای جمع شدن، به هم چسبیدن است. راه حل این مشکل تبدیل عبارت y به یک عدد است! اینجا است که متد parseInt() به کمک شما میآيد. برای این کار کافی است عبارت را مطابق مثال بنویسید.
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
ولی یک نکته مهم در این قسمت وجود دارد که در کل نوشتن جاوا اسکریپت باید آن را فرا بگیرید. در واقع درست است که ما متغیر y را تغییر دادهایم ولی باید مقدار جدیدش را در جایی ذخیره کنیم! چه جایی بهتر از خود y! پس به جای عبارت بالا اینگونه مینویسیم:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
بدین ترتیب مقدار جدید y (که همان عددی شدن آن است) مجددا در y ذخیره میشود.
متد Number()
این متد همانند متد parseInt() است با این تفاوت که شما هر چیزی را از این طریق میتوانید به عدد تبدیل کنید! هر چیزی حتی تاریخ! به مثالهای زیر میکنیم:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
تمرین:
حالا که با متغیرهای عددی آشنا شدهاید وقت آن رسیده است تا حسابی خود را درگیر این متغیرها کنید! چون هنوز مباحث بسیار زیادی از جاوا اسکریپت ناگفته مانده است، انتظار ساختن یک ماشین حساب (بهعنوان معمولترین تمرین دوره جاوا اسکریپت) از شما نداریم؛ ولی انتظار داریم توانایی نوشتن یک برنامه سادهتر را داشته باشید! برنامهای که از آن صحبت میکنیم به صورت زیر است:
یک برنامه بنویسید که بتواند درصد تخفیف اعمالشده روی محصولات یک فروشگاه و قیمت نهایی را محاسبه کند. از آنجا که هنوز نحوهی دریافت متغیرها از طریق فرم در اچتیامال را یاد نگرفتهایم ،میتوانید درصد تخفیف را بهصورت پیشفرض در یک متغیر مثل (var off = 10) ذخیره کنید.
پاسخ تمرین:
در صورتی که خودتان کمی فسفر سوزاندهاید و میخواهید جواب آخر را چک کنید، تصمیم داریم نحوه نوشتن این برنامه بسیار ساده را به شما بگوییم.
مرحله اول: تمامی متغیرهای لازم برای برنامه را در شروع آن تعریف میکنیم. مطمئنا یکی از متغیرهای اصلی ما در این بخش، درصد تخفیف است. پس یک متغیر به نام var off = 10 تعریف میکنیم.
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
حالا وقت آن رسیده است که قیمتها را محاسبه کنیم. همانطور که گفتیم، ما هنوز نحوه استفاده از فرمها و دریافت دادهها از کاربر از این طریق را یاد نگرفتهایم. پس نزدیکترین راهحل پیش روی ما، استفاده از یک متغیر دیگر به نام price است. این متغیر بعدها باید بهصورت داینامیک و بر اساس مبلغ واردشده توسط کاربر در فرم ایجاد شود؛ ولی فعلا به یک متغیر ثابت که توسط خودمان تغییر میکند رضایت میدهیم.
مثلا برای یک محصول دو هزار تومانی یک متغیر عددی تعریف میکنیم و مقدار قیمت دلخواه بدان میدهیم:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
حالا برای محاسبه درصد تخفیف، کافی است متغیر off را بر ۱۰۰ تقسیم کنیم تا بهصورت درصد در بیاید. سپس مقدار نهایی این متغیر را در مقدار قیمت محصول ضرب کنیم. به همین سادگی!
برای تقسیم off بر ۱۰۰ دو راه پیش رو داریم!
راه حل اول: استفاده از همان متغیر قبلی
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
دقت کنید که چون متغیر off یک بار تعریف شده است، نیازی به تعریف مجدد آن نیست و کافی است در زمانی که بدان نیاز داریم نام آن را بنویسیم و مقدار جدیدی بدان اختصاص دهیم.
راه حل دوم: استفاده از متغیر جدید
یک راه دیگر این است که متغیر اول را دست نزنیم و یک متغیر جدید بسازیم. تصمیمگیری برای ایجاد یک متغیر جدید کاملا بسته به برنامه شما و تحلیل شما از منطق برنامه دارد. اگر مقدار این متغیر باید همه جا ثابت باشد و جای دیگری مورد استفاده قرار بگیرد، پس نباید با روش اول آن را تغییر دهید؛ ولی در غیر این صورت میتوانید هر زمان خواستید مقدار آن را عوض کنید.
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در آخرین مرحله بعد از تعریف متغیرهای مربوط به تخفیف، کافی است مقدار قیمت را در مقدار تخفیف ضرب کنیم:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
کلام آخر:
از متغیرهای عددی در کارهای بسیاری میتوان بهره برد. از محاسبات ریاضی ساده در بخشهای محاسباتی گرفته تا محاسبات پیچیده در برنامههای پیچیدهتر... ما در دوره فعلی تمرکز خود را روی سادهترین متدها و امکانات متغیرهای عددی قرار دادهایم؛ ولی در صورت علاقه میتوانید نکات پیشرفتهتر و کاملتر از این موضوع را در وبسایت w3schools مطالعه کنید.