array javascript operators boolean-logic

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:

  1. true es un tipo booleano donde 1 es entero
  2. 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