مقایسه ها (Comparisons)
عملگر مقایسه (Comparison Operator) دو مقدار را می سنجد و نتیجه بولی (Boolean) می دهد؛ یعنی فقط true یا false. مثل کارنامه؛ می پرسی «نمره بیشتر است؟» و جواب بله یا نه می آید.
برابری سست (==) و نتیجه بولی
== فقط مقدار را می سنجد و نوع (Type) را نادیده می گیرد.
let x = 5;
let result = x == "5";
برابری سخت (===) و تطابق نوع
=== هم مقدار و هم نوع را می سنجد؛ دقیق تر و مطمئن تر است.
let x = 5;
let result = x === "5";
نابرابری: != و !==
!= فقط مقدار، و !== مقدار به همراه نوع را متفاوت می خواهد.
let x = 5;
let result = x !== "5";
بزرگ تر/کوچک تر (>، <، >=، <=)
این عملگرها اندازه را می سنجند؛ مثل مقایسه قد در صف مدرسه.
let x = 5;
let gt = x > 8;
let lt = x < 8;
let gte = x >= 8;
let lte = x <= 8;
مقایسه رشته ها (String)
رشته ها به ترتیب الفبا سنجیده می شوند؛ مثل فرهنگ لغت.
let text1 = "A";
let text2 = "B";
let result = text1 < text2;
نکته: رشته "20" از "5" بزرگ تر است؛ چون مقایسه حرف به حرف است.
let a = "20";
let b = "5";
let result = a < b;
مقایسه نوع های متفاوت و تبدیل
هنگام مقایسه رشته با عدد، جاوااسکریپت رشته را عددی می کند. بهتر است خودت نوع را درست کنی.
let age = "16";
age = Number(age);
let voteable;
if (isNaN(age)) {
voteable = "Input is not a number";
} else {
voteable = (age < 18) ? "Too young" : "Old enough";
}
استفاده در شرط ها (if)
در شرط (Conditional) از مقایسه استفاده می کنیم تا تصمیم بگیریم.
let age = 17;
let text;
if (age < 18) {
text = "Too young to buy alcohol";
}
نکته: ادامه کار با شرط ها را در شرط ها بخوان. برای عملگرهای انتسابی هم مقایسه ها را به عنوان مکمل ببین.
جمع بندی سریع
- نتیجه مقایسه فقط true یا false است.
- === امن تر از == است.
- رشته ها الفبایی مقایسه می شوند.
- نوع ها را قبل مقایسه درست کن.
- >، <، >=، <= اندازه را می سنجند.