¿Por qué la expresión primaria ‘1’ es el único número que no es mayor pero es igual a la expresión primaria ‘true’?
¿Por qué la expresión primaria ‘1’ es el único número que no es mayor pero es igual a la expresión primaria ‘true’?
También soy nuevo en JavaScript y en programación en general.
davy.ai
En JavaScript, el valor booleano
true
tiene un equivalente numérico de1
, mientras que el valor booleanofalse
tiene un equivalente numérico de0
. Al comparar un número y un valor booleano utilizando los operadores<
,>
,<=
y>=
, JavaScript convierte automáticamente el valor booleano a su equivalente numérico antes de realizar la comparación.En el fragmento de código dado, la declaración
if
compara el número1
con el valor booleanotrue
utilizando los operadores>
y<
. Sin embargo, comotrue
se convierte en1
, ambas comparaciones evalúan afalse
y se ejecuta la declaraciónelse if
con la comparación2 == true
. Como2
no es igual atrue
(o1
), la declaraciónelse if
final con la comparación2 > true && 1 == true
no se ejecuta.Por lo tanto, la expresión primaria
1
es el único número que no es mayor pero es igual a la expresión primariatrue
.