یک عملگر مقایسهای، عملوندهای خود را با هم مقایسه کرده و بر اساس اینکه نتیجهی مقایسه درست است یا نه، یک مقدار منطقی (true یا false) برمیگرداند. این عملوندها میتوانند مقادیر عددی، رشتهای، منطقی یا شیء (Object) باشند.
رشتهها بر اساس ترتیب استاندارد لغتنامهای (Lexicographical) و با استفاده از مقادیر یونیکد (Unicode) مقایسه میشوند. در بیشتر موارد، اگر دو عملوند از یک نوع نباشند، جاوااسکریپت تلاش میکند تا آنها را به یک نوعِ مناسب برای مقایسه تبدیل کند. این رفتار معمولاً باعث میشود که عملوندها به صورت عددی با هم مقایسه شوند.
تنها استثنا در زمینهی تبدیل خودکارِ نوع داده (Type conversion) هنگام مقایسه، مربوط به عملگرهای === و !== است که مقایسهی برابری و نابرابری سختگیرانه یا صریح (Strict) را انجام میدهند. این عملگرها قبل از بررسی برابری، هیچ تلاشی برای تبدیل عملوندها به انواع سازگار با هم نمیکنند.
جدول زیر عملگرهای مقایسهای را بر اساس این دو متغیر فرضی توضیح میدهد:
const var1 = 3;
const var2 = 4;
| عملگر | توصیف و کارکرد | مثالهایی که true برمیگردانند |
برابری معمولی (==) | اگر دو عملوند با هم برابر باشند، true برمیگرداند. |
|
نابرابری معمولی (!=) | اگر دو عملوند با هم برابر نباشند، true برمیگرداند. |
|
برابری سختگیرانه (===) | اگر دو عملوند همارزش و همنوع باشند، true برمیگرداند. | 3 === var1 |
نابرابری سختگیرانه (!==) | اگر دو عملوند همنوع ولی نابرابر باشند، یا اینکه اصلاً از دو نوع مختلف باشند، true برمیگرداند. |
|
بزرگتر از (<) | اگر عملوند سمت چپ از عملوند سمت راست بزرگتر باشد، true برمیگرداند. |
|
بزرگتر یا مساوی (<=) | اگر عملوند سمت چپ بزرگتر یا مساوی با عملوند سمت راست باشد، true برمیگرداند. |
|
کوچکتر از (>) | اگر عملوند سمت چپ از عملوند سمت راست کوچکتر باشد، true برمیگرداند. |
|
کوچکتر یا مساوی (>=) | اگر عملوند سمت چپ کوچکتر یا مساوی با عملوند سمت راست باشد، true برمیگرداند. |
|
نکته: علامت
<=یک عملگر مقایسهای نیست، بلکه نشانهای برای تعریف توابع پیکانی (Arrow functions) است.
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://developer.mozilla.org/en-US/docs/Web/JavaScript