href="#fb3_img_img_7833d615-0e9a-5a90-aede-079f263f1e9e.jpg" alt="Img_p2"/> y dejará de ser booleano:
var caso1 = true; typeof caso1 == “boolean”
var caso1 = false; typeof b == “boolean”
4. Las instrucciones if/else
var hora = new Date();
var horas = hora.getHours();
if (horas<12) {
formatoHora = ‘am’;
}
else { formatoHora = ‘pm’;
}
5. En este código se utilizará true o false para decidir si el formato de la hora debe mostrarse con ‘am’ o con ‘pm’. De ello dependerá si la hora es anterior a las 12 (true , entonces ‘am’) o después (false , entonces ‘pm’).
6. ¿Cuándo una variable devuelve true y cuándo lo hace false ? A grandes rasgos, podemos decir que devuelve true cuando recibe un valor entre comillas o bien cualquier número que no sea 0.
020 Convertir valores en booleanos
CADA UNO DE LOS VALORES DE JavaScript (números, booleanos, texto, objetos y los valores undefined y null) pueden ser convertidos a booleanos. Como se verá en este ejercicio, a cada uno de estos valores le corresponde un valor booleano concreto.
1. Para poder convertir valores de JavaScript en datos booleanos, utilizaremos el objeto ‘Boolean’ como un objeto envolvente. Si no recuerda qué son los objetos envolventes, no dude en recuperar el ejercicio 9 de este libro.
2. El único parámetro que precisa es proceso de conversión de este tipo de datos es el de valor. Se tratará en este caso del valor inicial del objeto booleano. Si no existe ningún valor o éste es 0, -0, null, false, NaN, undefined o una cadena vacía, el valor inicial del objeto será false. El resto de valores crean un objeto con el valor inicial true. La tabla incluida en la imagen 1 indica el valor inicial y qué valor booleano le corresponde tras su conversión.
3. Cualquier objeto cuyo valor no sea undefined o null, incluyendo un objeto Boolean cuyo valor sea false, da como resultado true cuando se pasa a una sentencia condicional. ¿Qué significa esta afirmación? Lo entenderá fácilmente en el siguiente ejemplo:
x = new Boolean(false);
if (x)
//En este caso, el resultado es true.
4. JavaScript dispone de tres métodos para convertir manual-mente datos a booleanos. El primero de estos métodos, y el más defendido por los desarrolladores, pasa por invocar el objeto Boolean como una función y no como un constructor: Boolean(valor) . Un ejemplo de sentencias que siguen este método sería el siguiente:
Boolean(undefined) == false
Boolean(null) == false
Boolean(0) == false
Boolean(1) == true
Boolean(2) == true
Boolean(‘’) == false
Boolean(‘abc’) == true
5. El segundo método para convertir manualmente valores a booleanos es utilizando el operador condicional, incluido dentro del grupo de los operadores especiales de JavaScript: ? : . Como recordará, este operador sirve para realizar expresiones condicionales, sin tener en cuenta el grado de complejidad de las mismas. Si la condición escrita es verdadera, dará como resultado el valor true ; de otro modo, si la condición no es cierta, el resultado será false .
6. El tercer método que permite aplicar JavaScript es utilizar una doble negación delante del valor que deseamos convertir. Esta doble negación se consigue con los símbolos !!.
7. No queremos terminar sin advertir que no se deben confundir los datos primitivos booleanos true y false con los valores true y false del objeto Boolean. Del mismo modo, no debe utilizar un objeto Boolean en lugar de una primitiva booleano (true o false).
021 Los operadores || y !
EN EL EJERCICIO 14 DE ESTE libro tratamos de forma breve y descriptiva los tres operadores lógicos de JavaScript: && (AND), || (OR) y ! (NOT). En este ejercicio vamos a profundizar en dos de ellos para mostrar el modo en que pueden comportarse en sus scripts.
1. Empezaremos este ejercicio hablando del operador lógico || (OR) y recordando su descripción: se utiliza, como el resto de operadores lógicos, para tomar decisiones en un script y se basan en los operandos booleanos true y false. En una sentencia que confronte dos operandos, el operador || producirá como resultado true en el caso en que uno de los dos operandos sea verdadero; en el caso en que ambos valores sean falsos, entonces el resultado será false.
2. Otro modo de gestionar el operador OR es el siguiente: Si el primer operando puede convertirse en true , la comparación devuelve true. De no ser así, el resultado será el segundo operando.
3. En ocasiones, una sentencia puede tener como valor (ya sea un parámetro o el resultado de una función) un valor nulo (undefined o null) o un valor real. Si deseamos proporcionar un valor predeterminado que sustituya a estos valores, es posible utilizar el operador ||. Un ejemplo resumido de uno de estos casos es el siguiente:
function guardarPrenda(prenda) {
prenda = prenda || ‘’; ...
}