از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
راهنمای عملگر سه تایی در جاوا اسکریپت اپراتور سه تایی یک اپراتور سه عاملی است که در اکثر زبان های برنامه نویسی از جمله جاوا اسکریپت، جاوا، سی پلاس پلاس، سی شارپ و بسیاری دیگر پشتیبانی می شود. از آن به عنوان یک عملگر شرطی نیز یاد می شود زیرا به عنوان جایگزین مختصرتری برای عبارت شرطی (if-else) در نظر گرفته می شود. در این راهنما، ما…
سرفصلهای مطلب
معرفی
آ اپراتور سه تایی یک اپراتور سه عاملی است که در اکثر زبان های برنامه نویسی از جمله جاوا اسکریپت، جاوا، سی پلاس پلاس، سی شارپ و بسیاری دیگر پشتیبانی می شود. از آن به عنوان a نیز یاد می شود عملگر شرطی زیرا به عنوان جایگزین مختصرتری برای مشروط (if-else
) بیانیه.
در این راهنما، خواهیم آموخت که عملگر سه تایی چیست و چگونه در جاوا اسکریپت کار می کند. همچنین، مقایسه مختصری با آن انجام خواهیم داد
if-else
بیانیه، بنابراین ما می دانیم که چه زمانی از کدام یک استفاده کنیم.
اپراتور سه تایی در جاوا اسکریپت
مانند هر زبان دیگری، اپراتور سه تایی در جاوا اسکریپت هم دارد سه عملوند:
(condition) ? returnExpressionIfTrue : returnExpressionIfFalse;
ما به راحتی می توانیم این را به متن مربوطه ترجمه کنیم if-else
بیانیه:
if (condition) {
returnExpressionIfTrue;
} else {
returnExpressionIfFalse;
}
این اساسا به این معنی است که condition
و returnExpressionIfTrue
مطابقت دارد if
بند مربوطه if-else
بیانیه، و returnExpressionIfFalse
مربوط به else
بخش بیانیه مذکور
اگر condition
به عنوان ارزیابی می کند true
، returnExpressionIfTrue
بیان اجرا می شود. از سوی دیگر، اگر condition
به عنوان ارزیابی می شود false
، returnExpressionIfFalse
اجرا می شود.
توجه داشته باشید: برای دقیق تر، جاوا اسکریپت بررسی می کند که آیا condition
به عنوان ارزیابی می کند حقیقت یا به عنوان ارزش نادرست. دروغین مقادیر همه مقادیری هستند که جاوا اسکریپت به عنوان آنها ارزیابی می کند false
در یک عبارت بولی – false
، none
، undefined
، NaN
، 0
، -0
، 0n
، و ""
. تمام مقادیر دیگر به عنوان ارزیابی می شوند true
در یک عبارت بولی – بنابراین در نظر گرفته شده است حقیقت.
روش استفاده از اپراتور سه تایی
یک راه عالی برای توضیح اپراتور سه تایی مقایسه آن با if-else
بیانیه. فرض کنید سن خاصی داریم و میخواهیم بررسی کنیم که آیا کاربر جوانتر از آن است یا نه:
let age = 21;
let result;
if(age >= 20){
result = "User can view content";
} else {
result = "User cannot view content";
}
console.log(result);
بیایید این را بازنویسی کنیم if-else
مسدود کردن با استفاده از اپراتور سه تایی :
let age = 21;
let result = age >= 20 ? "User can view content" : "User cannot view content";
console.log(result);
اساساً هر چیزی قبل از علامت سوال (?
) هست وضعیت در حال بررسی هستیم دو عملوند دیگر هستند اصطلاحات، اولین مورد قبل از نیمه دونقطه (:
) و دومی بعد. اگر شرط باشد true
، ارزش از result
خواهد بود "User can view the content"
. در غیر این صورت، مقدار اختصاص داده شده به result
خواهد بود "User cannot view the content"
.
بیایید یک مثال جالب دیگر را بررسی کنیم:
let name = "John Doe";
if (name) {
console.log("Hello " + name);
} else {
console.log("Hello " + "Guest");
}
از آنجا که name
یک رشته غیر خالی است، یک رشته در نظر گرفته می شود حقیقت ارزش. بنابراین، این مثال منجر به ورود به سیستم می شود "Hello John Doe"
در console. اگر name
یک رشته خالی بودند – خروجی خواهد بود "Hello Guest"
. این سناریو به راحتی به اپراتور سه تایی قابل تبدیل است:
let name = "John Doe";
name ? console.log("Hello " + name) : console.log("Hello " + "Guest");
اگرچه ممکن است فراتر از محدوده این راهنما باشد، اما راه حل جالب دیگر استفاده از آن است منطقی or
اپراتور به جای عملگر سه تایی این به ما نتیجه ای کاملاً مشابه با دو رویکرد دیگر را می دهد:
console.log("Hello " + (name || "Guest"));
مدیریت عبارات چند خطی با عملگر سه تایی
با نگاهی به عبارت اول، متوجه خواهیم شد که توانستیم یک خط پنج خطی را جمع کنیم if-else
بلوک به یک عبارت سه تایی تک خطی. فرض کنید می خواهیم عبارات چند خطی را با عملگر سه تایی مدیریت کنیم:
const age = 22;
let youth;
if (age <= 30) {
youth = true;
console.log("I am a Youth!");
} else {
youth = false;
console.log("I am an Adult!");
}
console.log(youth);
ما باید این عبارات را در پرانتز قرار دهیم و سپس هر کدام را با کاما از هم جدا کنیم:
age <= 30
? ((youth = true), console.log("I am a Youth!"))
: ((youth = false), console.log("I am an Adult!"));
حتی اگر کدی که از عملگرهای سه تایی استفاده می کند کوتاه تر است، حتی این عبارت دو خطی، خواندن و درک عملگر سه تایی را بسیار سخت می کند. به همین دلیل است که بهتر است از عملگر سه تایی برای عبارات چند خطی استفاده نکنید – جایگزین بهتر این است که از if-else
در چنین شرایطی مسدود کنید.
اپراتورهای سه تایی تو در تو
آ تو در تو عملگر سه تایی به توانایی قرار دادن یک اپراتور سه تایی در یک عملگر دیگر اشاره دارد. این عبارات زمانی استفاده می شوند که بخواهیم شرایط چندگانه را ارزیابی کنیم. به عنوان مثال، با if-else
عبارت ما می توانیم استفاده کنیم else if
عبارت برای تودرتو کردن چند شرط با هم:
let studentScore = 65;
let studentGrade;
if (studentScore >= 70) {
studentGrade = "A";
} else if (studentScore >= 60) {
studentGrade = "B";
} else if (studentScore >= 50) {
studentGrade = "C";
} else if (studentScore >= 45) {
studentGrade = "D";
} else {
studentGrade = "E";
}
console.log(`Your grade is ${studentGrade}`);
وقتی این را با عملگر سه تایی پیاده سازی می کنیم، چیزی شبیه به این خواهیم داشت:
let studentScore = 65;
let studentGrade = studentScore >= 70 ? "A"
: studentScore >= 60 ? "B"
: studentScore >= 50 ? "C"
: studentScore >= 45 ? "D"
: "E";
console.log(`Your grade is ${studentGrade}`);
اگر توجه نکنیم و به درستی درک نکنیم که چگونه عملگر سه تایی کار می کند، خواندن این می تواند به سرعت دشوار شود. مهمتر از همه – حتی اگر بتوانید این را بخوانید – در مورد همکارانتان چطور؟ در چنین مواردی توصیه می شود از آن استفاده کنیم if-else
یا switch
عبارات به جای نوشتن کدی که می تواند دیگران را گیج کند.
نتیجه
همانطور که در این راهنما دیدیم، عملگر سه تایی و if-else
بیانیه را می توان تقریباً به جای یکدیگر استفاده کرد و این شما هستید که تصمیم می گیرید چه زمانی یکی را بر دیگری انتخاب کنید. به طور کلی، اپراتور سه تایی برای جایگزینی در نهایت طراحی نشده است if-else
بیانیه. در عوض، هدف آن این است که یک جایگزین معتبر در سناریوهایی باشد که در آن if-else
فقط سربار غیر ضروری ایجاد می کند – زمانی که نتیجه آنقدر ساده است که هر چیزی غیر از یک عملگر سه تایی ساده فضای زیادی در کد می گیرد.
در این راهنما، نگاهی انداختیم به اینکه عملگر سه تایی چیست و چگونه از آن در جاوا اسکریپت استفاده کنیم. ممکن است در ابتدا کمی ترسناک به نظر برسد، اما پس از خواندن این راهنما باید بدانید که چگونه کار می کند و تفاوت بین اپراتور سه تایی و چیست. if-else
، بنابراین می دانید چه زمانی باید یکی را از دیگری انتخاب کنید.
منتشر شده در 1403-01-09 00:43:04