To tłumaczenie jest niekompletne. Pomóż przetłumaczyć ten artykuł z języka angielskiego.
Podsumowanie
Operandy posiadają wartość liczbową lub łańcucha znaków. Łańcuchy znaków są porównywane w oparciu o zasady pisowni, używają wartości Unicode.
Jako rezultat porównania zwracana jest wartość logiczna.
- Dwa łańcuchy są równe kiedy kiedy posiadają taką sama sekwencję znaków, taką samą długość, i takie same znaki w zgodnych pozycjach.
- Dwie liczby są równe kiedy ich wartości liczbowe (posiadają liczbę o takiej samej wartości). NaN jest różne dla wszystkich, włączając NaN. Dodatnie i ujemne zera są równe.
- Dwa obiekty są równe jeżeli odnoszą się do tego samego obiektu .
- Dwa operandy Boolean są równe jeżeli oba zwracają
true
lubfalse
. - Null and Undefined types are
==
(lecz nie===
).
Następująca tabela opisuje operatory porównania:
Operator | Opis | Przykłady zwracające prawdę (true)1 |
---|---|---|
Równy (== ) |
Zwraca true jeżeli operandy są równe. Jeżeli operandy nie są tego samego typu, JavaScript próbuje przekształcić operandy na odpowiedni dla porównania typ. |
|
Różny (!= ) |
Zwraca true jeżeli operandy są różne. Jeżeli dwa operandy nie są tego samego typu, JavaScript próbuje przekształcić operandy na odpowiedni dla porównania typ. |
|
Identyczny (=== ) |
Zwraca true jeżeli operandy są równe i tego samego typu. |
|
Nieidentyczny (!== ) |
Zwraca true jeżeli operandy nie są równe i/lub nie są tego samego typu. |
|
Większy niż (> ) |
Zwraca true jeżeli lewy operand jest większy od prawego operandu. |
|
Większy - równy (>= ) |
Zwraca true jeżeli lewy operand jest większy lub równy prawemu operandowi. |
|
Mniejszy niż (< ) |
Zwraca true, jeśli lewy operand jest mniejszy, niż prawy. |
|
Mniejszy - równy (<= ) |
Zwraca true jeżeli lewy operand jest mniejszy lub równy prawemu operandowi. |
|
1 Te przykłady zakładają, że var1
będzie przydzielona wartość 3 i var2
będzie miała przydzieloną wartość 4.
Używanie operatorów porównania
Standardowe operatory(==
i !=
) porównują dwa operandy bez względu na ich typ. Operatory porównania identyczności(===
i !==
) dokonują porównania równości na operandach tego samego typu. Operatorów identyczności używamy jeżeli operandy muszą być określonego typu jak również wartości lub jeśli dokładny typ operandów jest ważny. W przeciwnym razie, używamy standardowych operatorów porównania, które pozwalają na porównać identyczność dwóch operandów nawet jeżeli nie są takiego samego typu.
Kiedy potrzebna jest konwersja, JavaScript następująco przekształca operand Number, Boolean lub Object.
- Kiedy porównujemy liczbę i łańcuch, łańcuch jest zmieniany na wartość liczbową. JavaScript próbuje przekształcić łańcuch literalny cyfr na wartość typu
Number
. Najpierw, matematyczna wartość jest wyprowadzana z łańcucha cyfrowego literału. Następnie, ta wartość jest zaokrąglana do najbliższej wartości typuNumber
. - If one of the operands is
Boolean
, the Boolean operand is converted to 1 if it istrue
and +0 if it isfalse
. - If an object is compared with a number or string, JavaScript attempts to return the default value for the object. Operators attempt to convert the object to a primitive value, a
String
orNumber
value, using thevalueOf
andtoString
methods of the objects. If this attempt to convert the object fails, a runtime error is generated.
You cannot use the standard equality operator (==
) to compare instances of JSObject
. Use the JSObject.equals
method for such comparisons.
Kompatybilność wsteczna
Zachowanie standardowych operatorów porównania (==
i !=
) zależy od wersji JavaScript.
JavaScript 1.3 i wersje wcześniejsze
You can use either the standard equality operator (==
) or JSObject.equals
to compare instances of JSObject
.
JavaScript 1.2
The standard equality operators (==
and !=
) do not perform a type conversion before the comparison is made. Operatory identyczności (===
i !==
) są niedostępne.
JavaScript 1.1 i wersje wcześniejsze
The standard equality operators (==
and !=
) perform a type conversion before the comparison is made.Operatory identyczności (===
i !==
) są niedostępne.