فصل ۴: عملگرها و عبارت‌ها در جاوااسکریپت

اموزش رایگان جاوا اسکریپت از مقدماتی تا متوسط

مقدمه

در تمام برنامه‌های جاوااسکریپت، عملگرها (Operators) کلیدی‌ترین ابزار انجام پردازش و منطق هستند. با استفاده از عملگرها می‌توان عملیات ریاضی، مقایسه، منطق، نسبت‌دهی یا حتی انجام شرط‌ها را به سادگی اجرا کرد. این فصل، شناخت عمیق و عملی همه عملگرهای مهم جاوااسکریپت و نکات حیاتی هرکدام را به شما می‌آموزد و با مثال‌های کاربردی، اشتباهات مبتدی‌ها را نیز بررسی می‌کند. با یادگیری این مفاهیم، مهارت کدنویسی شما بسیار افزایش خواهد یافت.


عملگرهای ریاضی (Arithmetic Operators)

عملگرهای ریاضی، اجازه انجام کلیه عملیات اصلی ریاضی را روی داده‌های عددی می‌دهند.

عملگرمعنیمثالخروجی مثال
+جمع5 + 27
تفریق8 – 35
*ضرب4 * 28
/تقسیم10 / 25
%باقیمانده تقسیم7 % 31
**توان2 ** 38
++افزایش ۱ واحدx++ (x=5)6 (بعدافزایش)
کاهش ۱ واحدy– (y=3)2 (بعدکاهش)

نمونه کد ریاضی:

let a = 5;
let b = 2;
console.log(a + b);     // 7
console.log(a % b);     // 1
a++;
console.log(a);         // 6

نکته:

  • ++a با a++ تفاوت عملی دارند (اول تغییر، بعد استفاده vs ابتدا استفاده، بعد تغییر).

عملگرهای مقایسه‌ای (Comparison Operators)

برای بررسی شباهت یا تفاوت و رابطه مقادیر، عملگرهای مقایسه‌ای استفاده می‌شوند. خروجی این عملگرها همیشه یک مقدار بولین (true یا false) است.

عملگرمعنیمثالخروجی مثال
==مساوی (فقط مقدار، نوع مهم نیست)5 == ‘5’true
===هم مقدار و هم نوع یکسان5 === ‘5’false
!=نابرابر5 != 7true
!==نابرابر یا هم نوع نیست5 !== ‘5’true
>بزرگ‌تر8 > 3true
<کوچک‌تر1 < 4true
>=بزرگتر یا مساوی5 >= 5true
<=کوچکتر یا مساوی3 <= 2false

نمونه کد مقایسه‌ای:

console.log(5 == '5');     // true  (نوع داده را چک نمی‌کند)
console.log(5 === '5');    // false (هم نوع هم مقدار)
console.log(6 > 3);        // true
console.log(8 <= 7);       // false
console.log(10 != 12);     // true
console.log(12 !== '12');  // true

توصیه:
همیشه از === و !== استفاده کنید تا خطاهای پنهان نداشته باشید (بررسی نوع داده مهم است).


عملگرهای منطقی (Logical Operators)

برای کار با چند شرط و وضعیت، ترکیب شرط‌ها و منطق بولین نیاز به این عملگرهاست. در شرط‌های if و حلقه‌ها کاربرد بسیاری دارند.

عملگرمعنیمثالخروجی مثال
&&وtrue && falsefalse
||یاtrue || falsetrue
!نقیض!falsetrue

نمونه کد منطقی:

console.log(4 > 2 && 7 < 10); // true  (هر دو درست)
console.log(6 < 4 || 5 === 5); // true (یکی کافی است)
console.log(!true);            // false

کاربرد در شرط‌ها:

let age = 20;
let isMember = true;
if (age >= 18 && isMember) {
  console.log("دسترسی دارید.");
}

عملگرهای نسبت‌دهی (Assignment Operators)

این عملگرها علاوه بر نسبت دادن ساده، امکان تغییر مقدار متغیر براساس مقدار فعلی را نیز می‌دهند (جمع، ضرب و …).

عملگرتوضیحمثال (x=5)نتیجه نهایی x
=مقداردهیx = 8x = 8
+=جمع و مقداردهیx += 2x = 7
-=تفریق و مقداردهیx -= 1x = 4
*=ضرب و مقداردهیx *= 3x = 15
/=تقسیم و مقداردهیx /= 5x = 1
%=مدول و مقداردهیx %= 4x = 1
**=توان و مقداردهیx **= 2x = 25

کد نمونه نسبت‌دهی:

let x = 5;
x += 2;  // x حالا برابر 7 است
x *= 3;  // x حالا برابر 21 است
x -= 5;  // x حالا برابر 16 است

عملگرهای خاص و پیشرفته در جاوااسکریپت

۱. ++ و — (افزایش و کاهش سریع)

  • پیشوند:
  let k = 3;
  ++k; // اول افزایش، بعد استفاده: k=4
  • پسوند:
  let n = 3;
  n++; // اول استفاده، بعد افزایش: مقدار n در این خط 3 است ولی بعد آن 4 می‌شود.

تفاوت ++a و a++ چیست؟

وضعیت++aa++
ترتیباستفادهاول افزایش، بعد استفادهاول استفاده، بعد افزایش

۲. typeof (بررسی نوع داده)

  • نوع هر مقدار یا متغیر را برمی‌گرداند.
console.log(typeof 5);             // "number"
console.log(typeof "JS");          // "string"
console.log(typeof true);          // "boolean"
console.log(typeof [1,2,3]);       // "object" (آرایه!)
console.log(typeof {name:"Ali"});  // "object"
console.log(typeof undefined);     // "undefined"
console.log(typeof null);          // "object"

نکته سئو: از typeof زیاد برای بررسی نوع داده در کدها و دیباگ استفاده می‌شود.

۳. عملگر شرطی (Ternary Operator)

  • ساده‌ترین جایگزین if/else است و در تعیین متغیرهای ساده یا تصمیم‌های جمع‌وجور مفید است.
let age = 18;
let status = (age >= 18) ? "بالغ" : "نابالغ";
console.log(status); // بالغ

ساختار کلی:

شرط ? مقدار_درست : مقدار_غلط;

۴. عملگر کوآلسینگ ?? و عملگر اختیاری زنجیره‌ای ?. (پیشرفته)

این دو در ES2020 به بعد اضافه شده‌اند.

  • ?? مقدار سمت راست را تنها زمانی جایگزین می‌کند که سمت چپ null یا undefined باشد.
  • ?. برای دسترسی مطمئن به ویژگی آبجکت یا تابعی که ممکن است وجود نداشته باشد:
let val = undefined;
console.log(val ?? "پیش فرض"); // "پیش فرض"

let user = null;
console.log(user?.name); // undefined بدون ارور

۵. عملگر delete و typeof

  • delete برای حذف ویژگی از آبجکت:
let obj = {x:1, y:2};
delete obj.x;
console.log(obj); // {y:2}

عبارت‌ها (Expressions) چیست؟

عبارت یا Expression: هر ترکیبی از متغیرها، عملگرها، مقادیر یا توابع که یک مقدار تولید می‌کند (در مقابل Statement).
به طور مثال:

let sum = 5 + 3 * 2; // sum یک عبارت است
let isAdult = (age >= 18); // یک عبارت منطقی است

عبارت حتی می‌تواند یک فراخوانی تابع یا مقدار بازگشتی باشد:

let upper = "ali".toUpperCase(); // عبارت خروجی toUpperCase

اشتباهات رایج در استفاده از عملگرها

  1. اشتباه گرفتن == و ===
  • == فقط مقدار را بررسی می‌کند (ممکن است نوع داده را تبدیل کند).
  • === مقدار و نوع داده هر دو باید یکسان باشند.
  • همیشه از === استفاده کنید.
  1. استفاده بیش از حد یا نابجای ++ و —
  • مثلاً استفاده در جای نامناسب و فهم اشتباه فرق پیشوند/پسوند.
  1. تنها استفاده از typeof برای شناسایی آرایه‌ها
  • typeof برای آرایه هم مقدار “object” می‌دهد. برای اینکه مطمئن شوید متغیر یک آرایه است:
    js Array.isArray(myVar); // true فقط اگر آرایه باشد
  1. نوشتن = به جای == یا ===
  • a = 4 مقدار نسبت می‌دهد ولی a == 4 مقایسه می‌کند. اشتباه متداول!
  1. اعمال عملگر به انواع ناسازگار
  • مثل ضرب رشته و عدد یا جمع عدد و ابجکت بدون تبدیل مناسب.

تمرین و مثال عملی

تمرین ۱: چند مثال از هر نوع عملگر بنویس و خروجی را در Console نمایش بده.

// عملگرهای ریاضی
let x = 6, y = 3;
console.log(x * y);  // 18
console.log(x / y);  // 2

// عملگرهای مقایسه
console.log(10 == "10");    // true
console.log(10 === "10");   // false

// عملگرهای منطقی
let a = 5, b = 9;
console.log(a < 10 && b > 7); // true
console.log(!(a > b));        // true

// عملگرهای نسبت‌دهی
let count = 10;
count /= 2;
console.log(count); // 5

// typeof
console.log(typeof a);     // number
console.log(typeof "Azar"); // string

// عملگر شرطی (ternary)
let score = 15;
let result = (score >= 10) ? "قبولی" : "مردودی";
console.log(result); // قبولی

تمرین ۲: دریافت سن کاربر و تعیین وضعیت با ternary operator

let userAge = prompt("سن خود را وارد کنید:");
userAge = Number(userAge);
let ageStatus = (userAge >= 18) ? "بالغ هستید" : "نابالغ هستید";
alert(ageStatus);

توجه: prompt و alert فقط در محیط مرورگر کار می‌کنند.


منابع تکمیلی


جمع‌بندی فصل چهارم

در این فصل با:

  • انواع عملگرهای ریاضی، مقایسه‌ای، منطقی و نسبت‌دهی،
  • عملگرهای خاص (typeof، ternary و …)
  • مفاهیم اساسی عبارات و خطاهای رایج،
  • و تمرین و مثال عملی برای تسلط بهتر آشنا شدیم.

در فصل بعد، وارد بحث ساختارهای کنترلی (if، switch، حلقه‌ها) و جریان اجرای برنامه در جاوااسکریپت خواهیم شد.

اگر پرسشی داشتی یا مثال دیگری خواستی همین‌جا بپرس و تمرین‌ها را حتماً در Console مرورگر تست کن!

محمد وب‌سایت

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *