javascript - array - ¿Por qué es 1=== 1=== 1 falso?
equals() javascript (5)
Corregir el comportamiento Ya que
1===1 // value is true
pero
true===1 // it''s false
Hay dos razones para esto:
- true es un tipo booleano donde 1 es entero
- simplemente, 1 no es igual a verdadero.
asi que
1===1===1 // false
En una consola de navegador, al ingresar 1===1
evalúa como true
. Ingresando 1===1===1
evalúa como false
.
Supongo que esto se debe a la forma en que se evalúa la declaración:
1 === 1 === 1
se convierte
(1 === 1) === 1
que evalúa
true === 1
que es false
¿Es esto correcto? Si no, ¿cuál es la verdadera razón de este comportamiento?
El comportamiento que mencionaste es correcto.
Es porque ===
implica una coincidencia basada en el tipo y el valor. true === 1
no coincide con el tipo, pero true == 1
coincide con el valor.
El operador ===
no solo prueba la igualdad, sino que también escribe la igualdad. Como un entero no es booleano, true === 1
es falso.
Comparar:
true == 1; // true
true === 1; // false
Example .
Sí, tienes razón. Aquí tiene dos controles de igualdad, que tienen la misma precedencia de operador. Primero se evalúa primero, luego su resultado se aplica a la siguiente verificación de igualdad.
1===1===1
es lo mismo que (1===1)===1
que es true===1
que es false
, porque aquí se verifica por valores Y sus tipos. 1==1==1
dará como resultado true
, porque verifica la igualdad solo por valores, por lo que 1==1==1
igual a (1==1)==1
igual a true==1
igual a true
.
si 1 == 1 == 1 entonces será verdadero