13 KiB
Основе JavaScript-а: Доношење одлука
Скетч белешка од Tomomi Imura
Квиз пре предавања
Доношење одлука и контрола редоследа извршавања кода чини ваш код поново употребљивим и робусним. Овај одељак покрива синтаксу за контролу тока података у JavaScript-у и њен значај када се користи са Буловим типовима података.
🎥 Кликните на слику изнад за видео о доношењу одлука.
Ову лекцију можете проћи на 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 само ако су обе стране тачне | (5 > 6) && (5 < 6 ) //Једна страна је нетачна, друга тачна. Враћа false |
|| |
Логичко ИЛИ: Поређује два Булова израза. Враћа true ако је бар једна страна тачна | (5 > 6) || (5 < 6) //Једна страна је нетачна, друга тачна. Враћа 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.
Прођите кроз сјајан преглед оператора од Џоша Комоа!
Задатак
Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.