درود دوستان! توی قسمت قبل با چند عملگر حسابی (Arithmetic) آشنا شدیم. توی این قسمت می‌خوایم با دو عملگر حسابی پرکابرد دیگه به اسم‌های Increment و Decrement آشنا بشیم.

این عملگرها جزء عملگرهای Unary هستن. یعنی عملگرهایی که یک عملوند دارن.

 

عملگر Increment

این عملگر به صورت علامت‌های ++ هست و از اون زمانی استفاده می‌کنیم که می‌خوایم به مقدار یک متغیر، یک واحد اضافه کنیم:

let x = 10;
>> x++;

alert(x); // 11

کد بالا مشابه کد زیر هست:

let x = 10;
x = x + 1;

alert(x); 11

ما توی کد قبل از عملگر Increment بعد از متغیر استفاده کردیم:

let x = 10;
>> x++;

alert(x); // 11

می‌تونیم از این عملگر قبل از متغیر هم استفاده کنیم:

let x = 10;
>> ++x;

alert(x); // 11

توی این شرایط هر دو خروجی یکسان هستن. اما شرایطی وجود داره که ممکنه خروجی‌های متفاوتی بگیریم. کد زیر رو در نظر بگیرین که این عملگر بعد از متغیر داره استفاده میشه:

let a = 10;
>> let b = a++;

alert(b); // 10
alert(a); // 11

توی این کد متغیر a با مقدار 10 پیاده‌سازی شده. متغیر b برابر با a++ هست. شاید انتظار داشته باشیم که مقدار b برابر با 11 باشه. اما اینطور نیست. توی این کد، ابتدا مقدار اولیه a که 10 هست به b نسبت داده میشه و بعد عملیات اضافه‌شدن انجام می‌گیره. برای همین الان مقدار b برابر با 10 هست. دکمه ► رو بزنین تا خروجی رو ببینین.

اما اگه از این عملگر قبل از متغیر استفاده کنیم:

let a = 10;
>> let b = ++a;

alert(b); // 11
alert(a); // 11

اینجا توی خط ۲ ابتدا عملیات اضافه‌شدن روی a انجام می‌گیره و مقدار a برابر با 11 میشه. بعد مقدار a نسبت داده میشه به b. پس مقدار b برابر با 11 میشه.

مثال‌های زیر رو در نظر بگیرین:

let a = 10;

alert(a++); // 10
alert(a);   // 11

توی این کد ابتدا مقدار a نمایش داده میشه و بعد یک واحد به اون اضافه میشه. اما توی کد زیر:

let a = 10;

alert(++a); // 11
alert(a);   // 11

ابتدا یک واحد به a اضافه و بعد مقدار اضافه‌شده به ما نمایش داده میشه.

 

عملگر Decrement

این عملگر که به صورت -- هست، برای کم کردن یک واحد از یک متغیر استفاده میشه:

let x = 10;
>> x--;

alert(x); // 9

این کد دقیقاً کار مشابه با کد زیر انجام میده:

let x = 10;
>> x = x - 1;

alert(x); // 9

درست مثل عملگر Increment، از این عملگر می‌تونیم قبل از متغیر هم استفاده کنیم. کد زیر خروجی یکسانی با حالت قبلی داره:

let x = 10;
>> --x;

alert(x); // 9

قوانینی که برای Increment داشتیم، برای Decrement هم برقرار هست:

let a = 10;
let b = a--;

alert(a); // 9
alert(b); // 10
let a = 10;
let b = --a;

alert(a); // 9
alert(b); // 9
let a = 10;

alert(a--); // 10
alert(a);   // 9
let a = 10;

alert(--a); // 9
alert(a);   // 9

 

نکته

عملگرهای Increment و Decrement فقط یک عملوند دارن که باید یک متغیر باشه. استفاده از اون برای یک عدد باعث میشه خطا بگیریم:

5++; // Error invalid increment/decrement operand

 

خب دوستان امیدوارم از این قسمت استفاده کرده باشین. توی قسمت بعدی عملگرهای Assignment رو بررسی می‌کنیم. روزتون خوش 😉✌️

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#arithmetic_operators

https://javascript.info/operators#increment-decrement