Warunkowy operator trójskładnikowy w JavaScript przypisuje wartość do zmiennej na podstawie pewnych warunków i jest jedynym operatorem JavaScript, który przyjmuje trzy operandy.
Operator trójskładnikowy zastępuje gdyby oświadczenie, w którym oba gdyby i jeszcze klauzule przypisują różne wartości do tego samego pola, na przykład:
jeśli (warunek)
wynik = „coś”;
jeszcze
wynik = „coś”;
Operator potrójny skraca tę instrukcję if / else do pojedynczej instrukcji:
wynik = (warunek)? „coś”: „coś”;
Gdyby stan jest prawdą, operator trójskładnikowy zwraca wartość pierwszego wyrażenia; w przeciwnym razie zwraca wartość drugiego wyrażenia. Rozważmy jego części:
- Najpierw utwórz zmienną, do której chcesz przypisać wartość, w tym przypadku wynik. Zmienna wynik będzie miał inną wartość w zależności od warunku.
- Zauważ, że po prawej stronie (tj. Sam operator), stan jest pierwszy.
- The stan zawsze następuje znak zapytania (?), które można w zasadzie odczytać jako „czy to prawda?”
- Dwa możliwe wyniki są ostatnie, oddzielone dwukropkiem (:).
To wykorzystanie operator trójskładnikowy jest dostępna tylko wtedy, gdy oryginał gdyby instrukcja ma format pokazany powyżej - ale jest to dość powszechny scenariusz, a użycie operatora trójskładnikowego może być znacznie bardziej wydajne.
Przykład operatora trójskładnikowego
Spójrzmy na prawdziwy przykład.
Być może musisz ustalić, które dzieci są w odpowiednim wieku, aby uczęszczać do przedszkola. Możesz mieć takie zdanie warunkowe:
var age = 7;
var przedszkole_kwalifikowalne;
jeśli (wiek> 5) {
kindergarten_elabled = "Wystarczająco stary";
}
jeszcze {
kindergarten_elabled = "Za młody";
}
Za pomocą operatora potrójnego możesz skrócić wyrażenie do:
var przedszkole_kwalifikowalne = (wiek <5)? „Za młody”: „Wystarczająco stary”;
Ten przykład oczywiście zwróciłby „wystarczająco stary”.
Wiele ocen
Możesz także uwzględnić wiele ocen:
var age = 7, var socially_ready = true;
var przedszkole_kwalifikowalne = (wiek <5)? „Too young”: już społecznie
„Dość stary, ale jeszcze nie gotowy” „Dość stary i wystarczająco dojrzały społecznie”
console.log (kwalifikujące się do przedszkola); // logi „Stary i wystarczająco dojrzały społecznie”
Wiele operacji
Operator trójskładnikowy pozwala również na włączenie wielu operacji dla każdego wyrażenia, oddzielonych przecinkiem:
var age = 7, socially_ready = true;
wiek> 5 lat (
alert („Jesteś wystarczająco stary.”),
location.assign („Continue.html”)
): (
socially_ready = false,
alert („Przepraszamy, ale nie jesteś jeszcze gotowy.”)
);
Implikacje operatora trójskładnikowego
Operatorzy trójskładnikowi unikają w inny sposób pełnych kod, więc z jednej strony wydają się pożądane. Z drugiej strony mogą mieć wpływ na czytelność - oczywiście „JEŚLI ELSE” jest łatwiejsze do zrozumienia niż tajemnicze „?”.
Korzystając z operatora trójskładnikowego - lub dowolnego skrótu - zastanów się, kto będzie czytał Twój kod. Jeśli mniej doświadczeni programiści mogą potrzebować zrozumieć logikę programu, być może należy unikać korzystania z operatora trójskładnikowego. Jest to szczególnie prawdziwe, jeśli stan i oceny są na tyle złożone, że trzeba zagnieżdżać lub łączyć łańcuch operatora trójskładnikowego. W rzeczywistości tego rodzaju zagnieżdżone operatory mogą mieć wpływ nie tylko na czytelność, ale również na debugowanie.
Podobnie jak w przypadku każdej decyzji programowej, należy wziąć pod uwagę kontekst i użyteczność przed użyciem operatora trójskładnikowego.