ÐÐ½Ð¾Ð´Ñ Ð½Ð°Ð¼ поÑÑÑбно виконÑваÑи ÑÑÐ·Ð½Ñ Ð´ÑÑ Ð½Ð° оÑÐ½Ð¾Ð²Ñ ÑÑÐ·Ð½Ð¸Ñ Ñмов.
ÐÐ»Ñ ÑÑого ми можемо викоÑиÑÑовÑваÑи ÑнÑÑÑÑкÑÑÑ if Ñа Ñмовний опеÑаÑÐ¾Ñ ?, Ñо Ñакож називаÑÑÑÑÑ Ð¾Ð¿ÐµÑаÑоÑом âзнак пиÑаннÑâ.
ÐнÑÑÑÑкÑÑÑ âifâ
ÐнÑÑÑÑкÑÑÑ if(...) обÑиÑлÑÑ ÑÐ¼Ð¾Ð²Ñ Ð² дÑжкаÑ
Ñ, ÑкÑо ÑезÑлÑÑÐ°Ñ Ñмови true, виконÑÑ Ð±Ð»Ð¾Ðº кодÑ.
ÐапÑиклад:
let year = prompt('Ð ÑÐºÐ¾Ð¼Ñ ÑоÑÑ Ð±Ñла опÑблÑкована ÑпеÑиÑÑкаÑÑÑ ECMAScript-2015?', '');
if (year == 2015) alert( 'Ðи маÑÑе ÑаÑÑÑ!' );
У Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð¾Ð¼Ñ Ð²Ð¸Ñе пÑÐ¸ÐºÐ»Ð°Ð´Ñ ÑÐ¼Ð¾Ð²Ð¾Ñ Ñ Ð¿ÑоÑÑа пеÑевÑÑка ÑÑвноÑÑÑ (year == 2015), але Ñмова може бÑÑи набагаÑо ÑкладнÑÑоÑ.
ЯкÑо ми Ñ Ð¾Ñемо виконаÑи бÑлÑÑе однÑÑÑ ÑнÑÑÑÑкÑÑÑ, ми Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ Ð·Ð°Ð³Ð¾ÑнÑÑи блок ÐºÐ¾Ð´Ñ Ñ ÑÑгÑÑÐ½Ñ Ð´Ñжки:
if (year == 2015) {
alert( "Це пÑавилÑно!" );
alert( "Ðи Ñакий ÑозÑмний!" );
}
Ðи ÑекомендÑÑмо огоÑÑаÑи блок ÐºÐ¾Ð´Ñ ÑÑгÑÑними дÑжками {} кожного ÑазÑ, коли ви викоÑиÑÑовÑÑÑе ÑнÑÑÑÑкÑÑÑ if, навÑÑÑ ÑкÑо виконÑваÑимеÑÑÑÑ Ð»Ð¸Ñе одна опеÑаÑÑÑ. Це покÑаÑÑÑ ÑиÑабелÑнÑÑÑÑ.
ÐÑлеве пеÑеÑвоÑеннÑ
ÐнÑÑÑÑкÑÑÑ if (â¦) обÑиÑлÑÑ Ð²Ð¸Ñаз Ñ Ð´ÑжкаÑ
Ñ Ð¿ÐµÑеÑвоÑÑÑ ÑезÑлÑÑÐ°Ñ Ñ Ð»Ð¾Ð³ÑÑний Ñип.
ÐагадаÑмо пÑавила пеÑеÑвоÑÐµÐ½Ð½Ñ Ð· ÑоздÑÐ»Ñ ÐеÑеÑвоÑÐµÐ½Ð½Ñ ÑипÑ:
- ЧиÑло
0, поÑожнÑй ÑÑдок"",null,undefinedÑаNaNпеÑеÑвоÑÑÑÑÑÑÑ Ð½Ð°false. ЧеÑез Ñе ÑÑ Ð½Ð°Ð·Ð¸Ð²Ð°ÑÑÑ âÑ Ð¸Ð±Ð½Ð¸Ð¼Ð¸â (âfalsyâ) знаÑеннÑми. - ÐнÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ Ð¿ÐµÑеÑвоÑÑÑÑÑÑÑ Ð½Ð°
true, ÑÐ¾Ð¼Ñ ÑÑ Ð½Ð°Ð·Ð¸Ð²Ð°ÑÑÑ âпÑавдивимиâ.
ÐÑже, код нÑколи не виконаÑÑÑÑÑ Ð·Ð° ÑÐ°ÐºÐ¾Ñ Ñмови:
if (0) { // 0 Ñ Ñ
ибним
...
}
â¦Ð° вÑеÑÐµÐ´Ð¸Ð½Ñ ÑÑÑÑ ÑÐ¼Ð¾Ð²Ð½Ð¾Ñ ÐºÐ¾Ð½ÑÑÑÑкÑÑÑ â завжди бÑде виконÑваÑиÑÑ:
if (1) { // 1 Ñ Ð¿Ñавдивим
...
}
Ðи Ñакож можемо пеÑедаваÑи попеÑеднÑо обÑиÑлене знаÑÐµÐ½Ð½Ñ Ð´Ð¾ if, напÑиклад:
let condition = (year == 2015); // ÑÑвнÑÑÑÑ Ð¾Ð±ÑиÑлÑÑÑÑÑÑ Ñк true або false
if (condition) {
...
}
Ðлок âelseâ
ÐиÑаз if може мÑÑÑиÑи необовâÑзковий блок else (âÑнакÑеâ). ÐÑн виконÑÑÑÑÑÑ, коли Ñмова Ñ Ñ
ибноÑ.
ÐапÑиклад:
let year = prompt('Ð ÑÐºÐ¾Ð¼Ñ ÑоÑÑ Ð±Ñла опÑблÑкована ÑпеÑиÑÑкаÑÑÑ ECMAScript-2015?', '');
if (year == 2015) {
alert( 'Ðи здогадалиÑÑ Ð¿ÑавилÑно!' );
} else {
alert( 'Як ви можеÑе Ñак помилÑÑиÑÑ?' ); // бÑдÑ-Ñке знаÑеннÑ, окÑÑм 2015
}
ÐекÑлÑка Ñмов: âelse ifâ
ÐÐ½Ð¾Ð´Ñ Ð¼Ð¸ Ñ
оÑÑли б пеÑевÑÑиÑи кÑлÑка ваÑÑанÑÑв Ñмови. Ðлок else if дозволÑÑ Ð½Ð°Ð¼ Ñе зÑобиÑи.
ÐапÑиклад:
let year = prompt('Ð ÑÐºÐ¾Ð¼Ñ ÑоÑÑ Ð±Ñла опÑблÑкована ÑпеÑиÑÑкаÑÑÑ ECMAScript-2015?', '');
if (year < 2015) {
alert( 'ÐаÑано...' );
} else if (year > 2015) {
alert( 'ÐапÑзно' );
} else {
alert( 'Саме Ñак!' );
}
У Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð¾Ð¼Ñ Ð²Ð¸Ñе ÐºÐ¾Ð´Ñ JavaScript ÑпоÑаÑÐºÑ Ð¿ÐµÑевÑÑÑÑ Ñи year < 2015. ЯкÑо ÑÑ Ñмова повеÑÑÐ°Ñ false, ÑÐ¾Ð´Ñ Ð¿ÐµÑевÑÑÑÑÑÑÑÑ Ð½Ð°ÑÑÑпна Ñмова year > 2015. ЯкÑо Ñ ÑÑ Ñмова повеÑÑÐ°Ñ false, ÑÐ¾Ð´Ñ Ð²Ð¸ÐºÐ¾Ð½ÑÑÑÑÑÑ Ð¾ÑÑаннÑй alert.
Ðоже бÑÑи бÑлÑÑе else if блокÑв. ÐÑÑаннÑй блок else Ñ Ð½ÐµÐ¾Ð±Ð¾Ð²âÑзковим.
Умовний опеÑаÑÐ¾Ñ â?â
ÐÐ½Ð¾Ð´Ñ Ð½Ð°Ð¼ Ð½ÐµÐ¾Ð±Ñ Ñдно пÑиÑвоÑÑи знаÑÐµÐ½Ð½Ñ Ð·Ð¼ÑннÑй в залежноÑÑÑ Ð²Ñд Ñмови.
ÐапÑиклад:
let accessAllowed;
let age = prompt('СкÑлÑки вам ÑокÑв?', '');
if (age > 18) {
accessAllowed = true;
} else {
accessAllowed = false;
}
alert(accessAllowed);
Так званий âÑмовнийâ опеÑаÑÐ¾Ñ Ð°Ð±Ð¾ опеÑаÑÐ¾Ñ âзнак пиÑаннÑâ Ð´Ð°Ñ Ð½Ð°Ð¼ зÑобиÑи Ñе в коÑоÑÑий Ñ Ð¿ÑоÑÑÑй ÑоÑмÑ.
ÐпеÑаÑÐ¾Ñ Ð¿ÑедÑÑавлений знаком пиÑÐ°Ð½Ð½Ñ ?. ÐÐ½Ð¾Ð´Ñ Ð¹Ð¾Ð³Ð¾ називаÑÑÑ âÑеÑнаÑнимâ, оÑкÑлÑки опеÑаÑÐ¾Ñ Ð¼Ð°Ñ ÑÑи опеÑанди. ÐаÑпÑÐ°Ð²Ð´Ñ Ñе Ñдиний опеÑаÑÐ¾Ñ Ñ JavaScript, Ñкий Ð¼Ð°Ñ Ñак багаÑо опеÑандÑв.
СинÑакÑиÑ:
let result = Ñмова ? знаÑеннÑ1 : знаÑеннÑ2;
СпоÑаÑÐºÑ Ð¾Ð±ÑиÑлÑÑÑÑÑÑ Ñмова: ÑкÑо вона Ñ Ð¿ÑавдивоÑ, ÑÐ¾Ð´Ñ Ð¿Ð¾Ð²ÐµÑÑаÑÑÑÑÑ Ð·Ð½Ð°ÑеннÑ1, ÑнакÑе â знаÑеннÑ2.
ÐапÑиклад:
let accessAllowed = (age > 18) ? true : false;
Ð ÑеÑ
нÑÑного поглÑдÑ, ми можемо пÑопÑÑкаÑи дÑжки навколо age > 18. ÐпеÑаÑÐ¾Ñ âзнак пиÑаннÑâ Ð¼Ð°Ñ Ð½Ð¸Ð·Ñкий пÑÑоÑиÑеÑ, ÑÐ¾Ð¼Ñ Ð²Ñн виконÑÑÑÑÑÑ Ð¿ÑÑÐ»Ñ Ð¿Ð¾ÑÑвнÑÐ½Ð½Ñ >.
Цей пÑиклад ÑобиÑÑ Ñеж Ñаме, Ñо Ñ Ð¿Ð¾Ð¿ÐµÑеднÑй:
// опеÑаÑÐ¾Ñ Ð¿Ð¾ÑÑвнÑÐ½Ð½Ñ "age > 18" виконÑÑÑÑÑÑ Ð¿ÐµÑÑим
// (не поÑÑÑбно обеÑÑаÑи його Ñ Ð´Ñжки)
let accessAllowed = age > 18 ? true : false;
Ðле дÑжки ÑоблÑÑÑ ÐºÐ¾Ð´ бÑлÑÑ ÑиÑабелÑним, ÑÐ¾Ð¼Ñ Ð¼Ð¸ ÑекомендÑÑмо ÑÑ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑваÑи.
У Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð¾Ð¼Ñ Ð²Ð¸Ñе пÑÐ¸ÐºÐ»Ð°Ð´Ñ Ð¼Ð¾Ð¶Ð½Ð° ÑникнÑÑи викоÑиÑÑÐ°Ð½Ð½Ñ Ð¾Ð¿ÐµÑаÑоÑа âзнак пиÑаннÑâ, оÑкÑлÑки Ñамо поÑÑвнÑÐ½Ð½Ñ Ð¿Ð¾Ð²ÐµÑÑÐ°Ñ true/false:
// Ñе ж Ñаме
let accessAllowed = age > 18;
ÐекÑлÑка â?â
ÐоÑлÑдовнÑÑÑÑ Ð¾Ð¿ÐµÑаÑоÑÑв знака пиÑÐ°Ð½Ð½Ñ ? може повеÑнÑÑи знаÑеннÑ, Ñке залежиÑÑ Ð²Ñд бÑлÑÑ Ð½Ñж однÑÑÑ Ñмови.
ÐапÑиклад:
let age = prompt('ÐÑк?', 18);
let message = (age < 3) ? 'ÐÑивÑÑ, кÑиÑ
ÑÑко!' :
(age < 18) ? 'ÐÑÑаÑ!' :
(age < 100) ? 'ÐÐ¾Ñ ÑанÑваннÑ!' :
'Який незвиÑайний вÑк!';
alert( message );
СпоÑаÑÐºÑ Ð¼Ð¾Ð¶Ðµ бÑÑи важко зÑозÑмÑÑи, Ñо вÑдбÑваÑÑÑÑÑ. Ðле, пÑидививÑиÑÑ Ð±Ð»Ð¸Ð¶Ñе, ми можемо побаÑиÑи, Ñо Ñе звиÑайна поÑлÑдовнÑÑÑÑ Ð¿ÐµÑевÑÑок:
- ÐеÑÑий âзнак пиÑаннÑâ пеÑевÑÑÑÑ, Ñи
age < 3. - ЯкÑо пÑавда, Ñо повеÑÑаÑ
'ÐÑивÑÑ, кÑÐ¸Ñ ÑÑко!'. У ÑнÑÐ¾Ð¼Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ Ð¿ÐµÑÐµÑ Ð¾Ð´Ð¸ÑÑ Ð´Ð¾ виÑÐ°Ð·Ñ Ð¿ÑÑÐ»Ñ Ð´Ð²Ð¾ÐºÑапки â:â, пеÑевÑÑÑÑÑиage < 18. - ЯкÑо Ñе пÑавда, Ñо повеÑÑаÑ
'ÐÑÑаÑ!'. Ð ÑнÑÐ¾Ð¼Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ Ð¿ÐµÑÐµÑ Ð¾Ð´Ð¸ÑÑ Ð´Ð¾ виÑÐ°Ð·Ñ Ð¿ÑÑÐ»Ñ Ð½Ð°ÑÑÑÐ¿Ð½Ð¾Ñ Ð´Ð²Ð¾ÐºÑапки â:â, пеÑевÑÑÑÑÑиage < 100. - ЯкÑо Ñе пÑавда, Ñо повеÑÑаÑ
'ÐÐ¾Ñ ÑанÑваннÑ!'. У ÑнÑÐ¾Ð¼Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ Ð¿ÐµÑÐµÑ Ð¾Ð´Ð¸ÑÑ Ð´Ð¾ виÑÐ°Ð·Ñ Ð¿ÑÑÐ»Ñ Ð¾ÑÑаннÑÐ¾Ñ Ð´Ð²Ð¾ÐºÑапки â:â, повеÑÑаÑÑи'Який незвиÑайний вÑк!'.
ÐÑÑ Ñк Ñе бÑде виглÑдаÑи Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ Ð· викоÑиÑÑаннÑм if..else:
if (age < 3) {
message = 'ÐÑивÑÑ, кÑиÑ
ÑÑко!';
} else if (age < 18) {
message = 'ÐÑÑаÑ!';
} else if (age < 100) {
message = 'ÐÐ¾Ñ ÑанÑваннÑ!';
} else {
message = 'Який незвиÑайний вÑк!';
}
ÐеÑÑадиÑÑйне викоÑиÑÑÐ°Ð½Ð½Ñ â?â
ÐÐ½Ð¾Ð´Ñ Ð¾Ð¿ÐµÑаÑÐ¾Ñ âзнак пиÑаннÑâ ? викоÑиÑÑовÑÑÑÑÑÑ Ñк замÑна if:
let company = prompt('Яка компанÑÑ ÑÑвоÑила JavaScript?', '');
(company == 'Netscape') ?
alert('ÐÑавилÑно!') : alert('ÐепÑавилÑно.');
Ðалежно вÑд Ñмови company == 'Netscape', бÑде виконано або пеÑÑий, або дÑÑгий виÑаз пÑÑÐ»Ñ ? Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð¾ повÑдомленнÑ.
ТÑÑ Ð¼Ð¸ не пÑиÑвоÑÑмо ÑезÑлÑÑÐ°Ñ Ð·Ð¼ÑннÑй. ÐамÑÑÑÑ ÑÑого ми виконÑÑмо ÑÑзний код залежно вÑд Ñмови.
Ðе ÑекомендÑÑÑÑÑÑ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑваÑи опеÑаÑÐ¾Ñ âзнак пиÑаннÑâ Ñаким Ñином.
ÐÐ°Ð¿Ð¸Ñ Ñ ÐºÐ¾ÑоÑÑим, нÑж еквÑваленÑна ÑнÑÑÑÑкÑÑÑ if, Ñо пÑиваблÑÑ Ð´ÐµÑкиÑ
пÑогÑамÑÑÑÑв. Ðле вÑн Ð¼ÐµÐ½Ñ ÑиÑабелÑний.
ÐÑÑ Ñакий Ñамий код, Ñо викоÑиÑÑовÑÑ if Ð´Ð»Ñ Ð¿Ð¾ÑÑвнÑннÑ:
let company = prompt('Яка компанÑÑ ÑÑвоÑила JavaScript?', '');
if (company == 'Netscape') {
alert('ÐÑавилÑно!');
} else {
alert('ÐепÑавилÑно.');
}
ÐаÑÑ Ð¾ÑÑ ÑканÑÑÑÑ ÐºÐ¾Ð´ по веÑÑикалÑ. Ðлоки кодÑ, Ñо Ð¾Ñ Ð¾Ð¿Ð»ÑÑÑÑ ÐºÑлÑка ÑÑдкÑв, легÑе зÑозÑмÑÑи, нÑж довгий гоÑизонÑалÑний набÑÑ ÑнÑÑÑÑкÑÑй.
ÐеÑа опеÑаÑоÑа âзнак пиÑаннÑâ ? полÑÐ³Ð°Ñ Ð² повеÑÐ½ÐµÐ½Ð½Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ або ÑнÑого знаÑÐµÐ½Ð½Ñ Ð² залежноÑÑÑ Ð²Ñд Ñмови. ÐÑÐ´Ñ Ð»Ð°Ñка, викоÑиÑÑовÑйÑе його Ñаме Ð´Ð»Ñ ÑÑого. ÐикоÑиÑÑовÑйÑе if, коли вам поÑÑÑбно виконаÑи ÑÑÐ·Ð½Ñ Ð³Ñлки кодÑ.
ÐоменÑаÑÑ
<code>, Ð´Ð»Ñ ÐºÑлÑÐºÐ¾Ñ ÑÑдкÑв â обгоÑнÑÑÑ ÑÑ Ñегом<pre>, Ð´Ð»Ñ Ð¿Ð¾Ð½Ð°Ð´ 10 ÑÑдкÑв â викоÑиÑÑовÑйÑе пÑÑоÑниÑÑ (plnkr, jsbin, codepenâ¦)