Operatory relacji
Operatory relacji służą do porównania dwóch wyrażeń, a jako rezultat zwracana jest wartość logiczna true lub false w zależności od wyniku porównania.
Równy
==if...else
if(a==b)
{
/* instrukcje wykonywane jeżeli a jest równe b */
}
Nierówny
!=if(a!=b)
{
/* instrukcje wykonywane jeżeli a nie jest równe b */
}
Mniejszy
<if(a<b)
{
/* instrukcje wykonywane jeżeli a jest mniejsze od b */
}
Większy
>if(a>b)
{
/* instrukcje wykonywane jeżeli a jest większe od b */
}
Mniejszy lub równy
<=if(a<=b)
{
/* instrukcje wykonywane jeżeli a jest mniejsze lub równe b */
}
Większy lub równy
>=if(a>=b)
{
/* instrukcje wykonywane jeżeli a jest większe lub równe b */
}
W przypadku wszystkich wyżej wymienionych operatorów, wyrażenia uważane są za równe gdy reprezentują:
- takie same wartości liczbowe.
- identyczne łańcuchy znakowe.
- te same obiekty.
- takie same wartości logiczne.
Jeżeli dwa wyrażenia są różnego typu, następuje konwersja do jednego wspólnego typu.
Na przykład:
a = (22 == "22");
/* zmienna a osiąga wartość true, pomimo że jedno wyrażenie jest typu liczbowego a drugie jest łańcuchem znaków */
Wartość null jest równa wartości undefined.
Wartość NaN nie jest równa niczemu (nawet samej sobie).
W przypadku niżej wymienionych operatorów obowiązują nieco inne zasady.
Identyczny
===if(a===b)
{
/* instrukcje wykonywane jeżeli a jest równe b, jak również a jest tego samego typu co b */
}
Przykład:
a = (22 === "22");
W powyższym przykładzie zmienna a osiąga wartość false, ponieważ w przypadku tego operatora, wymagana jest jednakowa wartość oraz jednakowy typ zmiennych.
Nieidentyczny
!==if(a!==b)
{
/* instrukcje wykonywane jeżeli a nie jest równe b lub zmienna a jest innego typu co zmienna b */
}