javascriptConditional ternary operatorعملگر سهتایی در جاوااسکریپت
عملگر سهتایی جاوااسکریپت با شرط ? مقداراول : مقداردوم یک مقدار انتخاب میکند؛ ساخت برچسب ظرفیت و تفاوت آن با if چندمرحلهای را بیاموزید.
مفهوم به زبان ساده
گاهی تصمیم برنامه فقط انتخاب یک مقدار از دو گزینه است؛ مثلاً متن دکمه بر اساس ظرفیت، «ثبتنام» یا «تکمیل ظرفیت» باشد. عملگر شرطی سه بخش دارد: شرط، عبارت هنگام درستبودن و عبارت هنگام نادرستبودن. شکل condition ? first : second یک عبارت است و نتیجهٔ شاخهٔ انتخابشده را میتوان در متغیر گذاشت، برگرداند یا به تابع دیگری داد.
شرط مانند if در بافت truthy و falsy تفسیر میشود. از دو عبارت پس از شرط، فقط شاخهٔ لازم ارزیابی میشود؛ بنابراین اگر یکی از آنها تابعی را فراخوانی کند، اجرای آن به نتیجهٔ شرط وابسته است. در نمونه، ابتدا ظرفیت را به یک پرسش بولی روشن تبدیل میکنیم تا معنی تصمیم از روی نام و مقایسه مشخص باشد.
سهتایی برای انتخاب کوتاه مناسب است؛ زنجیرهٔ چند سهتایی تو در تو میتواند بررسی مرزها و خطاها را دشوار کند. وقتی هر شاخه چند کار مستقل انجام میدهد یا چند حالت نامگذاریشده داریم، if و else یا تابعی با مسئولیت روشن خواناتر میشود. برای تمرین، ظرفیت صفر و یک را امتحان کنید و توضیح دهید چرا عبارت انتخاب متن، خودِ ظرفیت را تغییر نمیدهد.
کجا به کار میآید؟
- انتخاب متن یا مقدار نمایشی از دو گزینهٔ ساده
- برگرداندن نتیجهٔ شرطی کوتاه بدون متغیر واسطِ قابل تغییر
از تعریف تا یک مثال واقعی
const remainingSeats = 2;
const label = remainingSeats > 0 ? 'ثبتنام' : 'تکمیل ظرفیت';
const nextLabel = 0 > 0 ? 'ثبتنام' : 'تکمیل ظرفیت';
console.log(label);
console.log(nextLabel);
console.log(remainingSeats);
ثبتنام تکمیل ظرفیت 2
این مثال چطور کار میکند؟
ظرفیت دو از صفر بیشتر است؛ شاخهٔ نخست انتخاب میشود.
برای ظرفیت صفر، متن تکمیل ظرفیت انتخاب میشود.
انتخاب برچسب، مقدار remainingSeats را تغییر نمیدهد.
اشتباه رایج
ترتیب دو گزینه را با نقش علامت سؤال و دونقطه بخوانید. کوتاهکردن چند شرط پیچیده در یک خط، لزوماً کد را قابل فهمتر نمیکند.
این را به خاطر بسپارید
سهتایی یک مقدار انتخاب میکند؛ آن را برای تصمیمهای کوتاه و با شاخههای روشن نگه دارید.