Operator warunkowy pozwala na ustalenie wartości wyrażenia w zależności od prawdziwości danego warunku. Ma on postać:
warunek ? wartość1 : wartość2
która oznacza: jeśli warunek jest prawdziwy, podstaw za wartość całego wyrażenia wartość1, a w przeciwnym razie za wartość wyrażenia podstaw wartość2. Jaka zatem wartość zostanie wyświetlona za pomocą kodu przedstawionego na listingu 2.12?
Listing 2.12. Użycie operatora warunkowego
<script type="text/javascript">
var liczba = 100;
var wynik = (liczba < 0) ? -1 : 1;
document.write(wynik);
</script>
Innymi słowy, jaka będzie wartość zmiennej wynik?
Najważniejsza jest tu oczywiście linia wynik = (liczba < 0) ? -1 : 1;. Po lewej stronie operatora przypisania = znajduje się zmienna (wynik), natomiast po stronie prawej wyrażenie warunkowe, czyli linia ta oznacza: przypisz zmiennej wynik wartość wyrażenia warunkowego. Jaka jest ta wartość? Trzeba przeanalizować samo wyrażenie: (liczba < 0) ? -1 : 1. Oznacza ono, zgodnie z tym, co zostało napisane w poprzednim akapicie: jeżeli wartość zmiennej liczba jest mniejsza od zera, przypisz wyrażeniu wartość –1, w przeciwnym razie (zmienna liczba większa lub równa zero) przypisz wyrażeniu wartość 1. Ponieważ zmiennej liczba została wcześniej przypisana wartość 100, wartością całego wyrażenia będzie 1 i ta właśnie wartość zostanie przypisana zmiennej wynik.
W tym miejscu ponownie zajrzyjmy do tabeli zawierającej priorytety operatorów. Z informacji tam podanych wynika, że operator warunkowy ma mniejszy priorytet niż operatory relacyjne. W związku z tym nawias okrągły, wprowadzony do wyrażenia w celu zwiększenia czytelności zapisu, może zostać pominięty i może mieć ono również postać:
liczba < 0 ? -1 : 1;