Booleanos Javascript

Un Booleano Javascript representa dos valores posibles: true o false.

Valores booleanos

A menudo, en programación, necesitarás un tipo de dato que solamente puede tener dos valores: verdadero (true) o falso (false).

Para ello, JavaScript tiene un tipo de datos booleano. Solo puede tomar los valores verdadero o falso.

La función boolean()

Puedes utilizar la función boolean() para saber si una expresión es verdadera o falsa.

Ejm

<!DOCTYPE html>
<html>
<body>

<p>Display the value of Boolean(10 > 9):</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
document.getElementById("demo").innerHTML = Boolean(10 > 9);
}
</script>

</body>
</html>

Comparaciones y condiciones

Aquí hay unos ejemplos.

Operador Descripción Ejemplo
== igual a if (day == “Monday”)
> más grande que if (salary > 9000)
< menos grande que if (age < 18)

El valor booleano de una expresión es la base de todas las comparaciones y condiciones de JavaScript.

Todo lo que tiene un valor es ‘true’

Ejm

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var b1 = Boolean(100);
var b2 = Boolean(3.14);
var b3 = Boolean(-15);
var b4 = Boolean("Hello");
var b5 = Boolean('false');
var b6 = Boolean(1 + 7 + 3.14);

document.getElementById("demo").innerHTML =
"100 is " + b1 + "<br>" +
"3.14 is " + b2 + "<br>" +
"-15 is " + b3 + "<br>" +
"Any (not empty) string is " + b4 + "<br>" +
"Even the string 'false' is " + b5 + "<br>" +
"Any expression (except zero) is " + b6;
</script>

</body>
</html>

Todo lo que no tiene un “valor” es falso

El valor booleano de 0 es falso

Ejm

var x = 0;
Boolean(x);       // returns false

El valor booleano de -0 es falso

Ejm

var x = -0; 
Boolean(x);       // returns false

El valor booleano de “” (cadena vacía) es falso

Ejm

var x = ""; 
Boolean(x);       // returns false

El valor booleano de undefined es falso

Ejm

var x; 
Boolean(x);       // returns false

El valor booleano de null es falso

Ejm

var x = null; 
Boolean(x);       // returns false

El valor booleano de false es falso

Ejm

var x = false; 
Boolean(x);       // returns false

El valor booleano de Nan (not a number) es falso

Ejm

var x = false; 
Boolean(x);       // returns false

Los booleanos pueden ser objetos

Normalmente, los booleanos de JavaScript son valores primitivos creados a partir de literales.

var x = false;

Pero los valores booleanos también se pueden definir como objetos con la palabra clave new.

var y = new boolean (false);

Ejm

<!DOCTYPE html>
<html>
<body>

<p>Never create booleans as objects.</p>
<p>Booleans and objects cannot be safely compared.</p>

<p id="demo"></p>

<script>
var x = false; // x is a boolean
var y = new Boolean(false); // y is an object
document.getElementById("demo").innerHTML = typeof x + "<br>" + typeof y;
</script>

</body>
</html>

No crees objetos booleanos. Ralentiza la velocidad de ejecución. La palabra clave new complica el código. Esto puede producir algunos resultados inesperados.

Cuando se usa el operador ===, los valores booleanos iguales no son iguales, porque el operador === espera igualdad tanto en el tipo como en el valor.

Ejm

<!DOCTYPE html>
<html>
<body>

<p>Never create booleans as objects.</p>
<p>Booleans and objects cannot be safely compared.</p>

<p id="demo"></p>

<script>
var x = false; // x is a number
var y = new Boolean(false); // y is an object
document.getElementById("demo").innerHTML = (x===y);
</script>

</body>
</html>

O peor aún. Los objetos no se pueden comparar:

Ejm

<!DOCTYPE html>
<html>
<body>

<p>Never create booleans as objects.</p>
<p>Booleans and objects cannot be safely compared.</p>

<p id="demo"></p>

<script>
var x = new Boolean(false); // x is an object
var y = new Boolean(false); // y is an object
document.getElementById("demo").innerHTML = (x==y);
</script>

</body>
</html>

Note la diferencia entre (x == y) y (x === y). La comparación de dos objetos JavaScript siempre devolverá falso.