JavaScript Comparison
🔍 مقایسه در JavaScript
جاوااسکریپت چند نوع عملگر برای مقایسه دارد.
نتیجهٔ همهٔ آنها true یا false است.
✅ 1. عملگرهای برابری
برابری سست (Loose Equality) — (==)
-
قبل از مقایسه، نوع دادهها را تبدیل (Coerce) میکند.
-
ممکن است نتایج عجیب ایجاد کند.
مثال:
0 == false // true
null == undefined // true
برابری سخت (Strict Equality) — (===)
-
بدون هیچ تبدیل نوع مقایسه میکند.
-
نوع و مقدار باید دقیقاً یکسان باشند.
مثال:
5 === “5” // false
0 === false // false
null === undefined // false
👉 بهترین روش: تقریباً همیشه از === و !== استفاده کن.
❌ 2. عملگرهای نابرابری
| عملگر | توضیح |
|---|---|
!= |
نابرابری سست |
!== |
نابرابری سخت |
مثال:
5 !== “5” // true
📉 3. مقایسههای بزرگتر و کوچکتر
| عملگر | معنی |
|---|---|
> |
بزرگتر |
< |
کوچکتر |
>= |
بزرگتر یا مساوی |
<= |
کوچکتر یا مساوی |
مثال:
5 > 3 // true
“a” < “b” // true (بر اساس ترتیب الفبایی)
⚠️ 4. موارد ویژه و نکات جالب
"2" < "15" → false
چون مقایسهٔ رشتهای است و بر اساس حروف انجام میشود.
[] == 0 → true
چون [] تبدیل به رشتهی "" میشود، و در مقایسه با عدد → 0.
[1] == 1 → true
چون [1] تبدیل به "1" و سپس به 1 میشود.
null و undefined
فقط بهصورت سست با هم برابرند:
null == undefined // true
null === undefined // false
🔬 5. بررسی نوع دادهها
گاهی برای مقایسه ضروری میشود:
typeof 5 // “number”
typeof “hello” // “string”
typeof null // “object” (ایراد قدیمی جاوااسکریپت)
Array.isArray([]) // true
🎯 جدول خلاصه
| عبارت | نتیجه |
|---|---|
5 == "5" |
true |
5 === "5" |
false |
0 == false |
true |
0 === false |
false |
"5" > 3 |
true |
"2" > "10" |
true (مقایسهٔ رشتهای) |
دیدگاهتان را بنویسید