Saltar al contenido

¿Es verdadero == 1 y falso == 0 en JavaScript?

Solución:

Eso es verdad true y false no representan ningún valor numérico en Javascript.

En algunos lenguajes (por ejemplo, C, VB), los valores booleanos se definen como valores numéricos reales, por lo que son simplemente nombres diferentes para 1 y 0 (o -1 y 0).

En algunos otros lenguajes (por ejemplo, Pascal, C #), existe un tipo booleano distinto que no es numérico. Es posible convertir entre valores booleanos y valores numéricos, pero no sucede automáticamente.

Javascript cae en la categoría que tiene un tipo booleano distinto, pero por otro lado Javascript está bastante interesado en convertir valores entre diferentes tipos de datos.

Por ejemplo, aunque un número no es un booleano, puede usar un valor numérico donde se espera un valor booleano. Utilizando if (1) {...} funciona tan bien como if (true) {...}.

Al comparar valores, como en su ejemplo, hay una diferencia entre los == operador y el === operador. los == operador de igualdad felizmente convierte entre tipos para encontrar una coincidencia, por lo que 1 == true se evalúa como verdadero porque true se convierte en 1. los === El operador de igualdad de tipos no realiza conversiones de tipos, por lo que 1 === true se evalúa como falso porque los valores son de diferentes tipos.

En JavaScript, == se pronuncia “Probablemente es igual”.

Lo que quiero decir con eso es que JavaScript convertirá automáticamente el booleano en un número entero y luego intentará comparar los dos lados.

Para una igualdad real, use el operador ===.

Prueba la comparación de igualdad estricta:

if(1 === true)
    document.write("oh!!! that's true");  //**this is not displayed**

los == operador realiza la conversión de un tipo a otro, el === el operador no lo hace.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *