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()
تغییر کند.
عملگرهای منطقی و بولینها
تصمیمگیری ممکن است به بیش از یک مقایسه نیاز داشته باشد و میتوان آنها را با عملگرهای منطقی ترکیب کرد تا یک مقدار بولین تولید شود.
نماد | توضیحات | مثال |
---|---|---|
&& |
و منطقی: دو عبارت بولین را مقایسه میکند. فقط در صورتی که هر دو طرف true باشند، true بازمیگرداند | (5 > 6) && (5 < 6 ) // یک طرف false است، طرف دیگر true. نتیجه false |
|| |
یا منطقی: دو عبارت بولین را مقایسه میکند. اگر حداقل یکی از طرفین true باشد، true بازمیگرداند | (5 > 6) || (5 < 6) // یک طرف false است، طرف دیگر true. نتیجه true |
! |
نقیض منطقی: مقدار مخالف یک عبارت بولین را بازمیگرداند | !(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 بخوانید.
به ابزار فوقالعاده operator lookup از Josh Comeau نگاهی بیندازید!
تکلیف
سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش میکنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادقتیها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفهای انسانی توصیه میشود. ما هیچ مسئولیتی در قبال سوءتفاهمها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.