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:

  1. 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.
  2. Czytelność: Dla doświadczonych programistów, taki zapis może być bardziej czytelny niż tradycyjne instrukcje if...else.

Ograniczenia:

  1. Komplikacja: Używanie zbyt wielu operatorów trójargumentowych w jednej linii może uczynić kod trudnym do zrozumienia.
  2. Nadużycie: Nie powinno się nadużywać tego operatora, szczególnie w przypadku skomplikowanych warunków, gdzie lepszym wyborem będzie standardowe if...else lub switch.

Masz pytania lub uwagi?

discord icon Przejdź na Discord
Masz pytanie? Napisz do nas 👇
kontakt@frontstack.pl
Copyright © 2023 Frontstack