javascript - tag - title of page html
¿El doble de JavaScript es igual(==) siempre simétrico? (3)
En Javascript, ==
es siempre symmetric .
La especificación dice :
NOTA 2 Los operadores de igualdad mantienen los siguientes invariantes:
A != B
es equivalente a!(A == B)
.A == B
es equivalente aB == A
, excepto en el orden de evaluación deA and B
Hay muchos casos en los que el operador de igualdad de coerción de tipo de JavaScript no es transitivo. Por ejemplo, consulte "La transitividad de igualdad de JavaScript es extraña ".
Sin embargo, ¿hay algún caso en el que ==
no sea simétrico ? Es decir, ¿dónde a == b
es true
y b == a
es false
?
La respuesta a su pregunta real (es el operador simétrico) es sí. La ECMA-262 establece explícitamente:
NOTA 2 Los operadores de igualdad mantienen los siguientes invariantes:
-
A != B
es equivalente a!(A == B)
. -
A == B
es equivalente aB == A
, excepto en el orden de evaluación deA
yB
Se supone que es simétrico. Sin embargo, hay un caso asimétrico en algunas versiones de IE:
window == document; // true
document == window; // false