مقدمه
از نظر ریاضی، یک operation (عملیات) محاسبهای روی یک یا چند مقدار به نام operand (عملوند) است که به یک مقدار خروجی نگاشت میشود.
یک operator (عملگر) نماد یا علامتی است که عملوندها را به خروجی تبدیل میکند.
یک Unary Operation عملیاتی است که فقط یک عملوند دارد. این عملوند میتواند قبل یا بعد از عملگر قرار بگیرد.
عملگرهای Unary نسبت به فراخوانی معمولی توابع JavaScript کارآمدتر هستند. همچنین این عملگرها قابل override شدن نیستند، بنابراین عملکردشان تضمین شده است.
لیست Unary Operator ها
| Operator | توضیح |
|---|---|
| Unary plus (+) | تلاش میکند عملوند را به عدد تبدیل کند |
| Unary negation (-) | عملوند را به عدد تبدیل کرده و منفی میکند |
| Increment (++) | یک واحد اضافه میکند |
| Decrement (–) | یک واحد کم میکند |
| Logical NOT (!) | به Boolean تبدیل کرده و معکوس میکند |
| Bitwise NOT (~) | تمام بیتها را برعکس میکند |
| typeof | نوع داده را به صورت رشته برمیگرداند |
| delete | ویژگی خاصی از object یا index از array را حذف میکند |
| void | مقدار بازگشتی یک عبارت را دور میاندازد |
در این مقاله با همهٔ اینها آشنا میشوید.
🔹 Unary plus (+)
این عملگر قبل از عملوند میآید و اگر عدد نباشد تلاش میکند آن را به number تبدیل کند.
میتواند موارد زیر را تبدیل کند:
-
رشتهٔ عددی
-
Boolean
-
null
اگر تبدیل نشود → NaN
مثالها:
+true → 1
+false → 0
+”not a number” → NaN
اگر object متد valueOf() داشته باشد نیز قابل تبدیل است.
🔹 Unary negation (-)
این عملگر مقدار را منفی میکند.
در تبدیل غیرعددیها مشابه تابع Number() عمل میکند.
مثال:
-true → -1
🔹 Increment (++)
یک واحد به مقدار اضافه میکند.
دو حالت دارد:
Postfix
ابتدا مقدار قبلی را برمیگرداند سپس افزایش میدهد.
Prefix
ابتدا افزایش میدهد سپس مقدار جدید را برمیگرداند.
🔹 Decrement (–)
مشابه Increment اما یک واحد کم میکند.
هم Prefix و هم Postfix دارد.
🔹 Logical NOT (!)
مقدار truthy را false و falsy را true میکند.
مثال:
!0 → true
!”” → true
!42 → false
Double NOT
برای تبدیل به Boolean واقعی استفاده میشود.
🔹 Bitwise NOT (~)
تمام بیتهای عدد را معکوس میکند.
نتیجهٔ آن برابر است با:
مثال:
~true → -2
🔹 typeof
نوع داده را به صورت رشته برمیگرداند.
مثال:
typeof “3” → “string”
typeof true → “boolean”
typeof [] → “object”
typeof function(){} → “function”
🔹 delete
ویژگیای از object را حذف میکند.
اگر موفق شود → true
اگر نشود → false
⚠️ روی متغیرها و توابع معمولی اثر ندارد.
مثال:
delete obj.a // true
نکات مهم delete
-
متغیرهای var / let / const حذف نمیشوند
-
property غیرقابل تنظیم حذف نمیشود
-
روی built-in object ها کار نمیکند
-
در array فقط مقدار حذف میشود نه index
🔹 void
یک عبارت را اجرا میکند ولی همیشه undefined برمیگرداند.
مثال:
یا:
کاربرد معروف در لینک HTML
لینکی که هیچ کاری انجام نمیدهد.
نتیجهگیری
در این مقاله با همهٔ Unary Operator های JavaScript آشنا شدید.
همیشه هنگام استفاده از چند عملگر، ترتیب اولویت (Operator Precedence) را در نظر بگیرید تا از باگهای غیرمنتظره جلوگیری شود.
از همراهی شما با پارمین کلود سپاسگزاریم.
نظرات کاربران