javascriptOperatorsعملگرها در جاوااسکریپت
عملگرهای جاوااسکریپت را با محاسبهٔ مبلغ سبد خرید بشناسید؛ تفاوت انتساب و مقایسه، ترتیب محاسبه و رفتار جمع عدد و متن را با مثال ببینید.
مفهوم به زبان ساده
عملگر روی یک یا چند مقدار کاری انجام میدهد و معمولاً نتیجهای میسازد. در محاسبهٔ مبلغ خرید، * تعداد را در قیمت ضرب میکند و - تخفیف را کم میکند. مقدارهایی که عملگر روی آنها کار میکند «عملوند» نام دارند. پس در price * quantity، نامهای price و quantity دو عملوند ضرباند.
علامت = نتیجه را به یک متغیر نسبت میدهد؛ برابر بودن دو مقدار را نمیسنجد. برای مقایسهٔ برابری، #strict-equality را بخوانید. عبارت total += 1000 شکل کوتاه total = total + 1000 است. اگر قرار است دوباره به نامی مقدار بدهید، #let مناسب است؛ برای نامهای بدون انتساب دوباره از #const استفاده کنید.
ترتیب عملگرها بر نتیجه اثر دارد. ضرب پیش از جمع انجام میشود و پرانتز میتواند ترتیب مورد نظر را روشن کند. همچنین + همیشه جمع عددی نیست؛ اگر یکی از دو طرف رشته باشد، ممکن است پیوند متن انجام دهد. بنابراین پیش از محاسبه با دادهٔ فرم، قرارداد #type-conversion را مشخص کنید. در این مثال همهٔ مبلغها عدد صحیح تومان و از قبل معتبرند؛ این فرض را بیبررسی به ورودی کاربر تعمیم ندهید.
کجا به کار میآید؟
- محاسبهٔ مبلغ خرید از تعداد، قیمت و تخفیف
- افزایش امتیاز یا شمارنده با انتساب مرکب
از تعریف تا یک مثال واقعی
const price = 80000;
const quantity = 3;
let total = price * quantity;
total -= 20000;
console.log(total);
console.log(2 + 3 * 4);
console.log((2 + 3) * 4);
console.log('2' + 3);
220000 14 20 23
این مثال چطور کار میکند؟
ضرب قیمت ۸۰۰۰۰ در تعداد ۳، مبلغ اولیهٔ ۲۴۰۰۰۰ را میسازد.
عملگر -= بیست هزار تومان از total کم میکند؛ نتیجه ۲۲۰۰۰۰ میشود.
در عبارت بدون پرانتز، ابتدا ضرب انجام میشود؛ پرانتز نتیجهٔ مثال بعدی را به ۲۰ تغییر میدهد.
در آخرین خط، '2' متن است؛ + متن 23 میسازد، نه عدد ۵.
اشتباه رایج
برای افزایش عددی مقدار فرم، به + تکیه نکنید. مقدار input.value متن است و '2' + 3 نتیجهٔ متنی '23' دارد. تبدیل و اعتبارسنجی را پیش از محاسبه انجام دهید.
این را به خاطر بسپارید
نوع عملوندها و ترتیب اجرا را بدانید؛ = برای انتساب و === برای مقایسه است.