عملگرها در جاوااسکریپت
بهنام نوبخت · ۱۴۰۵/۷/۱۱
در مقاله قبلی با متغیرها و انواع داده در جاوااسکریپت آشنا شدیم و یاد گرفتیم چگونه اطلاعات مختلف مانند متن، عدد و وضعیتهای true و false را در متغیرها ذخیره کنیم.
اما ذخیره کردن اطلاعات بهتنهایی کافی نیست. در یک برنامه واقعی باید بتوانیم روی این اطلاعات محاسبه انجام دهیم، مقادیر را با یکدیگر مقایسه کنیم، شرایط مختلف را بررسی کنیم و چند عبارت منطقی را به هم متصل کنیم.
برای انجام این کار در جاوااسکریپت از Operator یا عملگر استفاده میکنیم.
برای مثال:
let price = 100;
let quantity = 3;
let total = price * quantity;
console.log(total);در این مثال * یک عملگر ضرب است.
در این مقاله با مهمترین عملگرهای جاوااسکریپت آشنا میشویم و هرکدام را با مثالهای ساده و کاربردی بررسی میکنیم.
عملگر چیست؟
Operator یا عملگر یک علامت یا کلمه است که برای انجام یک عملیات روی یک یا چند مقدار استفاده میشود.
مثلاً:
10 + 5در این عبارت:
10 → مقدار
+ → Operator
5 → مقدارنتیجه:
15عملگرها در برنامهنویسی برای کارهای مختلفی استفاده میشوند؛ از محاسبات ساده گرفته تا مقایسه دادهها و ساخت شرطهای پیچیده.
انواع عملگرها در جاوااسکریپت
در جاوااسکریپت با گروههای مختلفی از عملگرها مواجه خواهیم شد:
عملگرهای حسابی
عملگرهای انتساب
عملگرهای مقایسهای
عملگرهای منطقی
عملگرهای افزایش و کاهش
عملگرهای رشتهای
عملگر شرطی
عملگرهای مربوط به نوع داده
در این مقاله مهمترین آنها را از سادهترین حالت شروع میکنیم.
عملگرهای حسابی در جاوااسکریپت
Arithmetic Operators برای انجام عملیات ریاضی استفاده میشوند.
مهمترین عملگرهای حسابی عبارتاند از:
+ جمع
- تفریق
* ضرب
/ تقسیم
% باقیمانده
** توانعملگر جمع (+)
برای جمع دو عدد از + استفاده میکنیم.
let number1 = 10;
let number2 = 5;
let result = number1 + number2;
console.log(result);خروجی:
15مثال عملی
فرض کنید قیمت دو محصول را داریم:
let product1 = 200;
let product2 = 300;
let total = product1 + product2;
console.log(total);خروجی:
500عملگر تفریق (-)
برای کم کردن یک مقدار از مقدار دیگر از - استفاده میکنیم.
let number1 = 10;
let number2 = 5;
let result = number1 - number2;
console.log(result);خروجی:
5مثال عملی
let balance = 1000000;
let payment = 250000;
let remaining = balance - payment;
console.log(remaining);خروجی:
750000عملگر ضرب (*)
برای ضرب دو مقدار از * استفاده میکنیم.
let price = 500;
let quantity = 3;
let total = price * quantity;
console.log(total);خروجی:
1500این عملگر در پروژههای واقعی کاربرد زیادی دارد.
برای مثال در یک فروشگاه آنلاین میتوانیم قیمت کل یک محصول را محاسبه کنیم.
عملگر تقسیم (/)
برای تقسیم از / استفاده میکنیم.
let total = 100;
let people = 4;
let result = total / people;
console.log(result);خروجی:
25عملگر باقیمانده (%)
عملگر % مقدار باقیمانده تقسیم را برمیگرداند.
مثلاً:
console.log(10 % 3);خروجی:
1چون:
10 ÷ 3 = 3
باقیمانده = 1مثال دیگر:
console.log(20 % 5);خروجی:
0چون 20 بهصورت کامل بر 5 تقسیم میشود.
کاربرد مهم %
یکی از کاربردهای رایج % بررسی زوج یا فرد بودن عدد است.
مثلاً:
let number = 10;
console.log(number % 2);نتیجه:
0اگر نتیجه 0 باشد، عدد زوج است.
برای مثال:
let number = 7;
console.log(number % 2);نتیجه:
1پس عدد 7 فرد است.
در مقاله مربوط به شرطها از همین مفهوم برای ساخت مثالهای واقعی استفاده خواهیم کرد.
عملگر توان (**)
برای محاسبه توان میتوانیم از ** استفاده کنیم.
let result = 2 ** 3;
console.log(result);خروجی:
8زیرا:
2 × 2 × 2 = 8مثال دیگر:
console.log(5 ** 2);خروجی:
25ترتیب انجام عملیات
جاوااسکریپت نیز مانند ریاضیات، عملیات را بر اساس ترتیب مشخصی انجام میدهد.
مثلاً:
let result = 10 + 5 * 2;
console.log(result);نتیجه:
20ابتدا ضرب انجام میشود:
5 × 2 = 10سپس:
10 + 10 = 20اگر بخواهیم ترتیب را مشخص کنیم، میتوانیم از پرانتز استفاده کنیم:
let result = (10 + 5) * 2;
console.log(result);نتیجه:
30بنابراین پرانتزها میتوانند ترتیب انجام عملیات را تغییر دهند.
عملگرهای انتساب
عملگرهای انتساب یا Assignment Operators برای قرار دادن مقدار در متغیر استفاده میشوند.
سادهترین عملگر انتساب:
=مثلاً:
let age = 25;در اینجا مقدار 25 در متغیر age قرار گرفته است.
نکته مهم این است که = به معنی «برابر بودن» در مفهوم ریاضی نیست؛ در اینجا برای انتساب مقدار استفاده میشود.
انتساب مجدد
با استفاده از = میتوانیم مقدار یک متغیر let را تغییر دهیم.
let score = 10;
score = 20;
console.log(score);خروجی:
20عملگر +=
فرض کنید داریم:
let score = 10;
score = score + 5;میتوان این عبارت را کوتاهتر نوشت:
let score = 10;
score += 5;
console.log(score);خروجی:
15یعنی:
score += 5;تقریباً معادل:
score = score + 5;است.
عملگر -=
برای کم کردن مقدار میتوانیم از -= استفاده کنیم.
let score = 20;
score -= 5;
console.log(score);خروجی:
15معادل:
score = score - 5;است.
عملگر *=
برای ضرب کردن مقدار فعلی یک متغیر میتوانیم از *= استفاده کنیم.
let price = 100;
price *= 3;
console.log(price);خروجی:
300معادل:
price = price * 3;است.
عملگر /=
برای تقسیم کردن مقدار یک متغیر میتوانیم از /= استفاده کنیم.
let number = 100;
number /= 4;
console.log(number);خروجی:
25معادل:
number = number / 4;است.
عملگرهای مقایسهای
یکی از مهمترین گروههای عملگرها، Comparison Operators یا عملگرهای مقایسهای هستند.
این عملگرها دو مقدار را با یکدیگر مقایسه میکنند و معمولاً نتیجهای از نوع:
trueیا:
falseبرمیگردانند.
مهمترین آنها:
> بزرگتر
< کوچکتر
>= بزرگتر یا مساوی
<= کوچکتر یا مساوی
=== برابر از نظر مقدار و نوع
!== نابرابر از نظر مقدار یا نوععملگر بزرگتر (>)
مثلاً:
console.log(10 > 5);خروجی:
trueچون 10 از 5 بزرگتر است.
مثال دیگر:
console.log(3 > 8);خروجی:
falseعملگر کوچکتر (<)
console.log(3 < 8);خروجی:
trueزیرا 3 از 8 کوچکتر است.
بزرگتر یا مساوی (>=)
console.log(10 >= 10);
خروجی:
trueزیرا 10 با 10 برابر است.
همچنین:
console.log(15 >= 10);
نتیجه:
trueکوچکتر یا مساوی (<=)
console.log(10 <= 10);خروجی:
trueهمچنین:
console.log(5 <= 10);نتیجه:
trueعملگر ===
عملگر === برای مقایسه مقدار و نوع داده استفاده میشود.
مثلاً:
console.log(10 === 10);نتیجه:
trueاما:
console.log(10 === "10");نتیجه:
falseچرا؟
زیرا:
10 → Number
"10" → Stringپس نوع داده آنها یکسان نیست.
برای شروع جاوااسکریپت بهتر است هنگام مقایسه دقیق، استفاده از === را یاد بگیرید.
عملگر ==!
عملگر ==! بررسی میکند که دو مقدار از نظر مقدار یا نوع داده برابر نباشند.
مثلاً:
console.log(10 !== 5);خروجی:
trueاما:
console.log(10 !== 10);خروجی:
falseهمچنین:
console.log(10 !== "10");نتیجه:
trueزیرا نوع داده متفاوت است.
تفاوت == و ===
در جاوااسکریپت دو عملگر == و === وجود دارند.
مثلاً:
console.log(10 == "10");در بسیاری از موارد نتیجه:
trueخواهد بود.
زیرا == میتواند قبل از مقایسه، تبدیل نوع انجام دهد.
اما:
console.log(10 === "10");نتیجه:
falseاست.
برای کدنویسی جاوااسکریپت مدرن، معمولاً === انتخاب مناسبتری برای مقایسه دقیق است.
فعلاً لازم نیست تمام جزئیات تبدیل نوع را بدانید. این موضوع در ادامه دوره بیشتر بررسی خواهد شد.
عملگرهای منطقی
عملگرهای منطقی یا Logical Operators زمانی کاربرد دارند که بخواهیم چند شرط یا عبارت را با یکدیگر ترکیب کنیم.
سه عملگر مهم منطقی عبارتاند از:
&& AND
|| OR
! NOTعملگر AND (&&)
&& زمانی نتیجه true میدهد که هر دو طرف آن true باشند.
مثال:
console.log(true && true);نتیجه:
trueاما:
console.log(true && false);نتیجه:
falseمثال کاربردی:
let age = 25;
let hasTicket = true;
console.log(age >= 18 && hasTicket === true);نتیجه:
trueدر این مثال دو شرط باید درست باشند:
age >= 18
AND
hasTicket === trueعملگر OR (||)
|| زمانی نتیجه true میدهد که حداقل یکی از دو عبارت true باشد.
مثال:
console.log(true || false);نتیجه:
trueمثال دیگر:
console.log(false || false);نتیجه:
falseمثال کاربردی:
let isAdmin = false;
let isManager = true;
console.log(isAdmin || isManager);نتیجه:
trueزیرا حداقل یکی از دو مقدار true است.
عملگر NOT (!)
عملگر ! نتیجه یک مقدار Boolean را معکوس میکند.
مثلاً:
console.log(!true);نتیجه:
falseو:
console.log(!false);نتیجه:
trueمثال:
let isLoggedIn = false;
console.log(!isLoggedIn);نتیجه:
trueعملگر افزایش ++
برای افزایش یک عدد به اندازه یک واحد میتوانیم از ++ استفاده کنیم.
مثلاً:
let count = 5;
count++;
console.log(count);خروجی:
6این عبارت:
count++;تقریباً معادل:
count = count + 1;است.
عملگر کاهش --
برای کاهش یک عدد به اندازه یک واحد از -- استفاده میکنیم.
let count = 5;
count--;
console.log(count);خروجی:
4معادل:
count = count - 1;است.
عملگر جمع برای String
عملگر + فقط برای جمع اعداد نیست.
میتوانیم از آن برای اتصال Stringها نیز استفاده کنیم.
مثلاً:
let firstName = "Ali";
let lastName = "Ahmadi";
let fullName = firstName + " " + lastName;
console.log(fullName);خروجی:
Ali Ahmadiدر اینجا + دو رشته را به هم متصل کرده است.
ترکیب String و Number
باید هنگام استفاده از + با String و Number دقت کنیم.
مثلاً:
console.log("Age: " + 25);خروجی:
Age: 25در اینجا جاوااسکریپت عدد را در کنار String قرار داده است.
مثال:
let name = "Ali";
let age = 25;
console.log("Name: " + name);
console.log("Age: " + age);خروجی:
Name: Ali
Age: 25در مقالات آینده روشهای مدرنتر و خواناتری برای ساخت Stringها یاد خواهیم گرفت.
عملگر شرطی یا Ternary Operator
جاوااسکریپت یک عملگر شرطی کوتاه به نام Ternary Operator دارد.
ساختار آن:
condition ? valueIfTrue : valueIfFalseمثال:
let age = 20;
let result = age >= 18 ? "Adult" : "Not Adult";
console.log(result);خروجی:
Adultدر این مثال اگر شرط:
age >= 18درست باشد، مقدار اول انتخاب میشود.
اگر شرط اشتباه باشد، مقدار دوم انتخاب میشود.
در ابتدای مسیر یادگیری لازم نیست زیاد از Ternary استفاده کنید. بعداً در بخش شرطها کاربرد آن را بیشتر بررسی خواهیم کرد.
مثال عملی: محاسبه مبلغ خرید
حالا یک مثال واقعیتر ایجاد کنیم.
فرض کنید یک محصول داریم:
let productPrice = 500000;
let quantity = 3;
let totalPrice = productPrice * quantity;
console.log(totalPrice);خروجی:
1500000حالا فرض کنید 200 هزار تومان تخفیف داریم:
let productPrice = 500000;
let quantity = 3;
let totalPrice = productPrice * quantity;
totalPrice -= 200000;
console.log(totalPrice);خروجی:
1300000در این مثال از چند مفهوم که تاکنون یاد گرفتهایم استفاده کردیم:
Variable
Arithmetic Operator
Assignment Operatorمثال عملی: بررسی سن
فرض کنید سن یک کاربر را داریم:
let age = 22;
console.log(age >= 18);خروجی:
trueدر اینجا از یک عملگر مقایسهای استفاده کردهایم.
بعداً میتوانیم همین مفهوم را با شرطها ترکیب کنیم تا بر اساس سن کاربر تصمیم بگیریم.
مثال عملی: بررسی دسترسی کاربر
فرض کنید کاربر باید هم وارد حساب شده باشد و هم مدیر باشد:
let isLoggedIn = true;
let isAdmin = true;
let canAccess = isLoggedIn && isAdmin;
console.log(canAccess);خروجی:
trueاگر یکی از آنها false باشد:
let isLoggedIn = true;
let isAdmin = false;
let canAccess = isLoggedIn && isAdmin;
console.log(canAccess);نتیجه:
falseاین نوع منطق در برنامههای واقعی بسیار کاربرد دارد.
جدول مهمترین عملگرها
عملگر | کاربرد | مثال |
|---|---|---|
| جمع یا اتصال متن |
|
| تفریق |
|
| ضرب |
|
| تقسیم |
|
| باقیمانده |
|
| توان |
|
| انتساب |
|
| جمع و انتساب |
|
| تفریق و انتساب |
|
| ضرب و انتساب |
|
| تقسیم و انتساب |
|
| مقایسه مقدار و نوع |
|
| نابرابری دقیق |
|
| بزرگتر |
|
| کوچکتر |
|
| بزرگتر یا مساوی |
|
| کوچکتر یا مساوی |
|
| AND |
|
` | ` | |
| NOT |
|
| افزایش یک واحد |
|
| کاهش یک واحد |
|
اشتباهات رایج در استفاده از عملگرها
اشتباه گرفتن = و ===
این دو عملگر کاملاً متفاوت هستند.
let age = 20;در اینجا = برای انتساب استفاده شده است.
اما:
age === 20برای مقایسه استفاده میشود.
اشتباه گرفتن + برای جمع و اتصال متن
مثلاً:
console.log(10 + 20);نتیجه:
30اما:
console.log("10" + 20);نتیجه:
1020زیرا در اینجا یک String وجود دارد و + برای اتصال استفاده میشود.
استفاده اشتباه از && و ||
به خاطر داشته باشید:
&& → همه شرایط باید درست باشند
|| → حداقل یکی از شرایط باید درست باشدتمرین عملی
تمرین ۱: محاسبات
کد زیر را بنویسید:
let number1 = 20;
let number2 = 5;سپس نتیجه عملیات زیر را در Console نمایش دهید:
جمع
تفریق
ضرب
تقسیم
باقیمانده
تمرین ۲: قیمت محصول
متغیرهای زیر را ایجاد کنید:
let price = 250000;
let quantity = 4;قیمت کل را محاسبه کنید.
سپس 100000 تومان تخفیف از قیمت کل کم کنید.
تمرین ۳: مقایسه
سن کاربر را در متغیری به نام age قرار دهید.
سپس بررسی کنید:
آیا سن بیشتر از 18 است؟
آیا سن دقیقاً 18 است؟
آیا سن کمتر از 18 است؟
تمرین ۴: Boolean
دو متغیر ایجاد کنید:
let isLoggedIn = true;
let isAdmin = false;با استفاده از && و || بررسی کنید:
آیا کاربر هم وارد شده و هم مدیر است؟
آیا کاربر وارد شده یا مدیر است؟
تمرین ۵: افزایش و کاهش
کد زیر را ایجاد کنید:
let count = 10;سپس:
یک واحد به آن اضافه کنید.
یک واحد دیگر اضافه کنید.
یک واحد کم کنید.
مقدار نهایی را نمایش دهید.
چالش ساده
یک برنامه کوچک برای محاسبه امتیاز ایجاد کنید.
فرض کنید:
let score = 80;با استفاده از عملگرهای مقایسهای بررسی کنید:
آیا امتیاز بزرگتر یا مساوی 50 است؟
آیا امتیاز برابر 100 است؟
آیا امتیاز کمتر از 50 است؟فعلاً فقط نتیجه true یا false را در Console نمایش دهید.
در مقاله بعدی یاد میگیریم چگونه بر اساس همین نتایج تصمیم بگیریم؛ یعنی وارد دنیای شرطها و کنترل جریان در جاوااسکریپت میشویم.
جمعبندی
در این مقاله با عملگرها در جاوااسکریپت آشنا شدیم.
یاد گرفتیم که عملگرها برای انجام عملیات مختلف روی دادهها استفاده میشوند.
با عملگرهای حسابی مانند +، -، *، /، % و ** محاسبات انجام دادیم.
با عملگرهای انتساب مانند =، +=، -=، *= و /= کار کردیم.
سپس با عملگرهای مقایسهای مانند ===، ==!، >، <، >= و <= آشنا شدیم.
همچنین یاد گرفتیم که از:
&&
||
!برای ایجاد منطق بین چند عبارت استفاده میشود.
در نهایت با عملگرهای ++، -- و Ternary نیز آشنا شدیم.
اکنون ابزارهای لازم برای انجام محاسبات و مقایسه دادهها را در اختیار داریم. در مقاله بعدی از این ابزارها استفاده خواهیم کرد تا برنامه بتواند بر اساس شرایط مختلف تصمیمگیری کند.
نظرات
هنوز نظری ثبت نشده است.