Условни тернарни оператер у ЈаваСцрипт додељује вредност променљивој на основу неког стања и једини је ЈаваСцрипт оператор који има три операнда.
Тернарни оператор је замјена за ан ако изјава у којој су оба ако и друго клаузуле додељују различите вредности истом пољу, као што је:
ако (услов)
резултат = 'нешто';
друго
ресулт = 'сометхингелсе';
Тернарни оператор скраћује ову иф / елсе изјаву у једну изјаву:
резултат = (услов)? 'нешто': 'сометхингелсе';
Ако стање тачно је, тернарни оператор враћа вредност првог израза; у супротном, враћа вредност другог израза. Размотримо његове делове:
- Прво направите променљиву којој желите да доделите вредност, у овом случају, резултат. Променљива резултат имаће другачију вредност у зависности од стања.
- Имајте на уму да је на десној страни (тј. Сам оператор) стање је први.
- Тхе стање увек прати знак питања (?), што се у основи може читати као "да ли је то истина?"
- Два могућа резултата су последња, одвојена двоточком (:).
Ова употреба тернарни оператор је доступан само када је оригинал
ако изјава прати горе приказани формат - али ово је прилично уобичајен сценарио, а коришћење тернарног оператера може бити далеко ефикасније.Пример Тернарног оператера
Погледајмо прави пример.
Можда је потребно да утврдите која су деца праве године да похађају вртић. Можда имате условну изјаву попут ове:
вар старост = 7;
вар вртићи_изборни;
ако (доб> 5) {
вртић_елигибле = "Довољно стар";
}
елсе {
вртић_елигибле = "Сувише млад";
}
Кориштењем тернарног оператера, можете скратити израз на:
вар вртић_елигибле = (доб <5)? "Сувише млад": "Довољно стар";
Овај пример би, наравно, вратио „Довољно старо“.
Вишеструке процене
Такође можете да укључите више евалуација:
вар аге = 7, вар социалли_реади = труе;
вар вртић_елигибле = (доб <5)? „Сувише млад“: друштвено већ
„Довољно стар, али још није спреман“ „Довољно стар и друштвено зрео“
цонсоле.лог (вртић_изборно); // забележи „Довољно стари и друштвено зрели“
Више операција
Тернарни оператор такође омогућава укључивање више операција за сваки израз, одвојених зарезом:
вар аге = 7, социалли_реади = труе;
старост> 5? (
узбуна („Довољно си стар.“),
лоцатион.ассигн ("настави.хтмл")
): (
социалли_реади = лажно,
упозорење („Извини, али још ниси спреман.“)
);
Импликације Тернарног оператера
Тернарни оператери избегавају вербосе у супротном код, с једне стране изгледају пожељно. С друге стране, они могу угрозити читљивост - очигледно је да је "АКО ЈЕ ЕЛСЕ" лакше разумети него загонетни "?".
Када користите тернарног оператора - или било коју скраћеницу - размислите ко ће читати ваш код. Ако мање искусни програмери можда требају да разумеју вашу програмску логику, можда би требало избећи употребу тернарног оператора. Ово је посебно тачно ако су ваше стање и процене довољно сложени да бисте морали да гнездете или повежете свог тернарног оператера. У ствари, ове врсте угнежђених оператора могу утицати не само на читљивост, већ и на отклањање грешака.
Као и код сваке програмске одлуке, будите сигурни да размислите о контексту и употребљивости пре употребе тернарног оператера.