Ternary operator
Operator trójargumentowy, znany również jako ternary operator
czy conditional operator
, to jedna z najbardziej zwięzłych form zapisu instrukcji warunkowych w JavaScript. Jego ogólna składnia wygląda następująco:
warunek ? wyrażenie1 : wyrażenie2;
Gdy warunek
jest prawdziwy (true
), wykonywane jest wyrażenie1
. W przeciwnym razie, gdy warunek
jest fałszywy (false
), wykonuje się wyrażenie2
.
Rozważmy prosty przykład:
let wiek = 20;
let status = wiek >= 18 ? 'dorosły' : 'niepełnoletni';
W tym przypadku, jeśli wiek
jest równy lub większy niż 18, status
przyjmie wartość "dorosły"
. W przeciwnym razie przyjmie wartość "niepełnoletni"
.
Zagnieżdżenia
Operator trójargumentowy może być również zagnieżdżony, co oznacza, że wyrażenie wyrażenie1
lub wyrażenie2
może być również operatorem trójargumentowym. Rozważmy następujący przykład:
let wiek = 20;
let status = wiek >= 18 ? 'dorosły' : wiek >= 13 ? 'nastolatek' : 'dziecko';
W tym przypadku, jeśli wiek
jest równy lub większy niż 18, status
przyjmie wartość "dorosły"
. W przeciwnym razie, jeśli wiek
jest większy lub równy 13, status
przyjmie wartość "nastolatek"
. W przeciwnym razie przyjmie wartość "dziecko"
.
Jak widać w powyższym przykładzie, operator trójargumentowy może być wielokrotnie zagnieżdżony, ale nie jest to zalecane, ponieważ może to znacznie pogorszyć czytelność kodu.
Zalety:
- Zwięzłość: Ternary operator pozwala na zapisanie warunków w jednej linii, co może znacznie skrócić i uporządkować kod, szczególnie przy prostych warunkach.
- Czytelność: Dla doświadczonych programistów, taki zapis może być bardziej czytelny niż tradycyjne instrukcje
if...else
.
Ograniczenia:
- Komplikacja: Używanie zbyt wielu operatorów trójargumentowych w jednej linii może uczynić kod trudnym do zrozumienia.
- Nadużycie: Nie powinno się nadużywać tego operatora, szczególnie w przypadku skomplikowanych warunków, gdzie lepszym wyborem będzie standardowe
if...else
lubswitch
.