javascriptComparison operatorsمقایسهٔ بزرگتر و کوچکتر در جاوااسکریپت
عملگرهای مقایسه در جاوااسکریپت را برای سنجش حداقل و حداکثر به کار ببرید؛ نوع ورودی، مقایسهٔ متن و خطای شرط زنجیرهای را با مثال ببینید.
مفهوم به زبان ساده
مقایسه به پرسشی مانند «امتیاز به حداقل لازم رسیده است؟» پاسخ بولی میدهد. عملگرهای <، >، <= و >= ترتیب دو مقدار را بررسی میکنند. علامت مساوی در <= و >= مرز را هم میپذیرد؛ بنابراین برای شرط قبولی، تصمیم دربارهٔ خودِ نمرهٔ مرزی مهم است. === و !== برای برابری و نابرابری بدون تبدیل نوعاند و مدخل جدا دارند.
نوع دو طرف بر نتیجه اثر میگذارد. دو رشته بر اساس ترتیب واحدهای متنی مقایسه میشوند؛ '20' < '3' میتواند true باشد، هرچند بیست از سه کوچکتر نیست. اگر یکی از دو طرف عدد و دیگری رشته باشد، برخی مقایسهها تبدیل عددی انجام میدهند. بهتر است قرارداد عددی را پیش از مقایسهٔ دادهٔ فرم مشخص کنید تا نتیجه به تبدیل پنهان وابسته نباشد.
برای نوشتن بازه از ساختار ریاضیِ 10 <= score <= 20 استفاده نکنید. بخش اول یک بولی تولید میکند و مقایسهٔ دوم دیگر همان پرسش اولیه را نمیسنجد. با دو مقایسهٔ مستقل و &&، هر دو حد را روشن بیان کنید. در آزمون، مرزها، عدد بیرون بازه و متن شبیه عدد را جدا امتحان کنید.
کجا به کار میآید؟
- بررسی حداقل و حداکثر نمره، سن یا تعداد مجاز
- یافتن علت مرتبسازی یا مقایسهٔ اشتباه متنهای رقمدار
از تعریف تا یک مثال واقعی
const score = 18;
console.log(score >= 10);
console.log(score >= 10 && score <= 20);
console.log('20' < '3');
console.log(Number('20') < Number('3'));
const outside = 30;
console.log(10 <= outside <= 20);
console.log(outside >= 10 && outside <= 20);
true true true false true false
این مثال چطور کار میکند؟
دو بررسی نخست، نمرهٔ ۱۸ را در محدودهٔ نمونه قبول میکنند.
دو رشتهٔ رقمدار مانند دو عدد مقایسه نمیشوند.
زنجیرهٔ شبیه نوشتار ریاضی برای عدد ۳۰ جواب غلط میدهد؛ && قرارداد درست را بیان میکند.
اشتباه رایج
شرط 10 <= value <= 20 یک بررسی بازهٔ معتبر نیست. همچنین داشتن رقم در یک رشته، آن را پیش از مقایسه خودکار به دادهٔ عددیِ معتبر تبدیل نمیکند.
این را به خاطر بسپارید
هر مقایسه دو عملوند دارد؛ برای بازه، دو پرسش جدا بسازید و نوع داده را روشن نگه دارید.