Условные операторы
Обычная последовательность выполнения кода соответствует порядку следования команд:
1var x = 5 // будет выполнена первой2var y = 11 // будет выполнена второй3var z = x * y + 5 // будет выполнена третьей
note
Условный оператор обеспечивает возможность ветвления скрипта в зависимости от выполнения определенного условия.
if
else
Любое значение, которое может быть приведено к типу Boolean
может стать условием для условного оператора if-else
:
Синтаксис:
1if (cond){2 //if cond is true3}4else {5 //if cond is false6}
Например:
1var age = 202if (age > 18){3 console.log('Welcome')4}5else {6 console.log('Sorry,You are so young for that.')7}89//1011if (age < 18){12 console.log('Sorry,You are so young for that.')13}14else {15 console.log('Welcome')16}
Если в теле условного оператора if всего одна операция, фигурные скобки можно опустить:
1if (age > 18) console.log('Hello ')
Важно
Присвоение тоже является выражением, а следовательно, если вы забудете в if
в сравнении =
, никакой ошибки не будет,
однако это работает не так, как вы думаете:smirk:
1var a = 02if (a = 0){3 console.log('Я УШЕЛ')4}5else {6 console.log('неожиданно, правда?')7}
А всё потому, что присвоение является выражением, которое вычисляется в присвоенное значение.
if
может быть так же применен без else
:
1var isYoung = true2var x = 103if (isYoung){4x = 75}6console.log('x =',x)
Тернарный оператор
Данный оператор позволяет сократить пару if-else
в некоторых ситуациях:
1var age = 182var isYoung = age > 18 ? 'Yes' : 'No';3console.log('isYoung',isYoung)
Важно
Принципиально отличие тернарного оператора от if
-else
заключается в том, что тернарный оператор является выражением.
switch
switch
позволяет выполнять определенные блоки кода в зависимости от значения выражения:
1var day2switch (new Date().getDay()) {3 case 0:4 day = "Sunday";5 break;6 case 1:7 day = "Monday";8 break;9 case 2:10 day = "Tuesday";11 break;12 case 3:13 day = "Wednesday";14 break;15 case 4:16 day = "Thursday";17 break;18 case 5:19 day = "Friday";20 break;21 case 6:22 day = "Saturday";23}2425console.log(day) // ??
break
в switch
обеспечивает переход на конец конструкции switch
(т. е. на код, следующий за }
).
Если break
не поставить, то можно объединить несколько case
в один:
1var text;2switch (new Date().getDay()) {3 case 4:4 case 5:5 text = "Soon it is Weekend";6 break;7 case 0:8 case 6:9 text = "It is Weekend";10 break;11 default:12 text = "Looking forward to the Weekend";13}1415console.log(text)
Самостоятельная Работа 🧑🎓
Используя примеры cо switch
переписать их используя if-else