12 KiB
اصول اولیه جاوااسکریپت: تصمیمگیری
یادداشت تصویری توسط Tomomi Imura
آزمون پیش از درس
تصمیمگیری و کنترل ترتیب اجرای کد باعث میشود کد شما قابل استفاده مجدد و قدرتمند باشد. این بخش به بررسی نحو کنترل جریان داده در جاوااسکریپت و اهمیت آن هنگام استفاده با انواع دادههای بولی میپردازد.
🎥 برای مشاهده ویدئویی درباره تصمیمگیری، روی تصویر بالا کلیک کنید.
میتوانید این درس را در Microsoft Learn دنبال کنید!
مرور کوتاه بر بولیها
بولیها فقط میتوانند دو مقدار داشته باشند: true
یا false
. بولیها کمک میکنند تصمیم بگیرید کدام خطوط کد باید اجرا شوند وقتی شرایط خاصی برقرار است.
بولی خود را به صورت true یا false تنظیم کنید:
let myTrueBool = true
let myFalseBool = false
✅ بولیها به نام ریاضیدان، فیلسوف و منطقدان انگلیسی جورج بول (1815–1864) نامگذاری شدهاند.
عملگرهای مقایسه و بولیها
عملگرها برای ارزیابی شرایط با انجام مقایسههایی استفاده میشوند که یک مقدار بولی ایجاد میکنند. در زیر لیستی از عملگرهایی که به طور مکرر استفاده میشوند آورده شده است.
نماد | توضیحات | مثال |
---|---|---|
< |
کمتر از: دو مقدار را مقایسه میکند و اگر مقدار سمت چپ کمتر از مقدار سمت راست باشد، نوع داده بولی true را برمیگرداند |
5 < 6 // true |
<= |
کمتر یا مساوی با: دو مقدار را مقایسه میکند و اگر مقدار سمت چپ کمتر یا مساوی مقدار سمت راست باشد، نوع داده بولی true را برمیگرداند |
5 <= 6 // true |
> |
بزرگتر از: دو مقدار را مقایسه میکند و اگر مقدار سمت چپ بزرگتر از مقدار سمت راست باشد، نوع داده بولی true را برمیگرداند |
5 > 6 // false |
>= |
بزرگتر یا مساوی با: دو مقدار را مقایسه میکند و اگر مقدار سمت چپ بزرگتر یا مساوی مقدار سمت راست باشد، نوع داده بولی true را برمیگرداند |
5 >= 6 // false |
=== |
برابری سختگیرانه: دو مقدار را مقایسه میکند و اگر مقادیر سمت راست و چپ برابر و از یک نوع داده باشند، نوع داده بولی true را برمیگرداند |
5 === 6 // false |
!== |
نابرابری: دو مقدار را مقایسه میکند و مقدار بولی مخالف آنچه عملگر برابری سختگیرانه برمیگرداند را برمیگرداند | 5 !== 6 // true |
✅ دانش خود را با نوشتن چند مقایسه در کنسول مرورگر خود بررسی کنید. آیا دادههای برگشتی شما را شگفتزده میکنند؟
دستور If
دستور if کدی را که بین بلوکهای آن قرار دارد اجرا میکند اگر شرط برقرار باشد.
if (condition) {
//Condition is true. Code in this block will run.
}
عملگرهای منطقی اغلب برای تشکیل شرط استفاده میشوند.
let currentMoney;
let laptopPrice;
if (currentMoney >= laptopPrice) {
//Condition is true. Code in this block will run.
console.log("Getting a new laptop!");
}
دستور If..Else
دستور else
کدی را که بین بلوکهای آن قرار دارد اجرا میکند وقتی شرط برقرار نباشد. این دستور با دستور if
اختیاری است.
let currentMoney;
let laptopPrice;
if (currentMoney >= laptopPrice) {
//Condition is true. Code in this block will run.
console.log("Getting a new laptop!");
} else {
//Condition is false. Code in this block will run.
console.log("Can't afford a new laptop, yet!");
}
✅ درک خود از این کد و کد زیر را با اجرای آن در کنسول مرورگر آزمایش کنید. مقادیر متغیرهای currentMoney و laptopPrice را تغییر دهید تا مقدار برگشتی console.log()
تغییر کند.
دستور Switch
دستور switch
برای انجام اقدامات مختلف بر اساس شرایط مختلف استفاده میشود. از دستور switch
برای انتخاب یکی از چندین بلوک کد برای اجرا استفاده کنید.
switch (expression) {
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
}
// program using switch statement
let a = 2;
switch (a) {
case 1:
a = "one";
break;
case 2:
a = "two";
break;
default:
a = "not found";
break;
}
console.log(`The value is ${a}`);
✅ درک خود از این کد و کد زیر را با اجرای آن در کنسول مرورگر آزمایش کنید. مقدار متغیر a را تغییر دهید تا مقدار برگشتی console.log()
تغییر کند.
عملگرهای منطقی و بولیها
تصمیمگیری ممکن است به بیش از یک مقایسه نیاز داشته باشد و میتوان آنها را با عملگرهای منطقی ترکیب کرد تا یک مقدار بولی تولید شود.
نماد | توضیحات | مثال |
---|---|---|
&& |
منطقی AND: دو عبارت بولی را مقایسه میکند. فقط زمانی true برمیگرداند که هر دو طرف true باشند | (5 > 6) && (5 < 6 ) //یک طرف false است، طرف دیگر true است. false برمیگرداند |
|| |
منطقی OR: دو عبارت بولی را مقایسه میکند. اگر حداقل یک طرف true باشد، true برمیگرداند | (5 > 6) || (5 < 6) //یک طرف false است، طرف دیگر true است. true برمیگرداند |
! |
منطقی NOT: مقدار مخالف یک عبارت بولی را برمیگرداند | !(5 > 6) // 5 بزرگتر از 6 نیست، اما "!" true برمیگرداند |
شرایط و تصمیمگیری با عملگرهای منطقی
عملگرهای منطقی میتوانند برای تشکیل شرایط در دستورات if..else استفاده شوند.
let currentMoney;
let laptopPrice;
let laptopDiscountPrice = laptopPrice - laptopPrice * 0.2; //Laptop price at 20 percent off
if (currentMoney >= laptopPrice || currentMoney >= laptopDiscountPrice) {
//Condition is true. Code in this block will run.
console.log("Getting a new laptop!");
} else {
//Condition is true. Code in this block will run.
console.log("Can't afford a new laptop, yet!");
}
عملگر نفی
تا اینجا دیدهاید که چگونه میتوانید از دستور if...else
برای ایجاد منطق شرطی استفاده کنید. هر چیزی که وارد یک if
شود باید به true/false ارزیابی شود. با استفاده از عملگر !
میتوانید عبارت را نفی کنید. این به صورت زیر خواهد بود:
if (!condition) {
// runs if condition is false
} else {
// runs if condition is true
}
عبارات سهگانه
if...else
تنها راه برای بیان منطق تصمیمگیری نیست. شما همچنین میتوانید از چیزی به نام عملگر سهگانه استفاده کنید. نحو آن به این صورت است:
let variable = condition ? <return this if true> : <return this if false>
در زیر یک مثال ملموستر آورده شده است:
let firstNumber = 20;
let secondNumber = 10;
let biggestNumber = firstNumber > secondNumber ? firstNumber : secondNumber;
✅ چند دقیقه وقت بگذارید و این کد را چند بار بخوانید. آیا میفهمید این عملگرها چگونه کار میکنند؟
کد بالا بیان میکند که:
- اگر
firstNumber
بزرگتر ازsecondNumber
باشد - سپس
firstNumber
را بهbiggestNumber
اختصاص دهید - در غیر این صورت
secondNumber
را اختصاص دهید.
عبارت سهگانه فقط یک روش فشرده برای نوشتن کد زیر است:
let biggestNumber;
if (firstNumber > secondNumber) {
biggestNumber = firstNumber;
} else {
biggestNumber = secondNumber;
}
🚀 چالش
برنامهای ایجاد کنید که ابتدا با عملگرهای منطقی نوشته شده باشد و سپس آن را با استفاده از یک عبارت سهگانه بازنویسی کنید. نحو مورد علاقه شما کدام است؟
آزمون پس از درس
مرور و مطالعه شخصی
درباره بسیاری از عملگرهای موجود برای کاربر در MDN بیشتر بخوانید.
به ابزار فوقالعاده جستجوی عملگر جاش کومو مراجعه کنید!
تکلیف
سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما برای دقت تلاش میکنیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادقتیهایی باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفهای انسانی توصیه میشود. ما هیچ مسئولیتی در قبال سوءتفاهمها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.