Un valor booleano es un valor lógico expresado en términos de verdadero (true) o falso
(false), que sirve principalmente para plantear disyuntivas a nivel de código.
Se puede entender como un interruptor, que pasa de encendido a apagado (on y off), o en su representación
númerica, como cero y uno.
Vamos a hacer un ejemplo con un botón que funcione a modo de interruptor, si lo pulsamos una vez
mostrará un texto como "encendido", y en la siguiente vez que pulsemos lo cambiará a "Apagado"
Declarar una variable booleana fuera de la función
Hacer una función con un if else que compruebe el valor de la variable anterior
Si el valor de la variable es true hará que muestre el texto "Apagado" y cambiará la
variable a false
Si el valor es false mostrará el texto "Encendido" y cambiará su valor a true
let encendido = false;
function interruptorBombilla() {
if (encendido == true) {
document.getElementById('bombilla').textContent = "Apagada";
encendido = false;
} else {
document.getElementById('bombilla').textContent = "Encendida";
encendido = true;
}
}
Apagada
Usando funciones asociadas para casos más complejos
En este caso queremos un interruptor que no solo cambie el texto del párrafo, además cambiará el formato
de su contenedor, y el texto del propio botón.
El planteamiento es igual que antes, usamos una variable booleana junto a un if else, pero
lo que tenemos que hacer en cada caso lo desarrollamos en dos funciones adicionales.
Definimos una variable booleana con el estado inicial
Por comodidad, definimos variables con los elementos del DOM a modificar en ambos modos
Definimos la función que hace de conmutador
Definimos 2 funciones, una para cada modo, con lo que cambia en cada caso
Uso de atributos data- para almacenar información que podamos recuperar y modificar en el script
Los atributos data- pueden funcionar como variables que nos permiten almacenar información en los nodos del documento, para ser usada y modificada cuando necesitemos.
La forma de declararlas es con la raíz "data-" seguida del nombre que vayamos a usar para guardar el dato y a continuación el signo igual y entre comillas el valor asignado, por ejemplo data-modo="oscuro"
La forma a acceder a estos datos desde JavaScript es usando la propiedad dataset del nodo donde se ha definido, seguido del nombre que pusimos después del guión, por ejemplo let tipo = nodo.dataset.modo.
Y la forma de modificar su valor desde JavaScript es de la misma forma que se modifica cualquier otra propiedad de un elemento, por ejemplo: nodo.dataset.modo = "claro".
Hay que tener en cuenta que todos los atributos HTML se almacenan como tipo de datos texto, por lo tanto data-precio="500" al pasarlo como variable al script será de tipo texto y no número, y data-encendido="true" tampoco será un booleano en el script. En ambos casos será necesario convertir el tipo de datos si los necesitamos de ese modo.
Vamos a repetir el ejemplo de la bombilla, pero en este caso el estado de la propia bombilla se almacena en el botón interruptor, en lugar de en una variable booleana externa.
Para trabajar de este modo el botón incorpora ahora un elemento data-encendido que establecemos como "true"
La función asociada al botón recupera en primer lugar el valor de ese data, y en función de lo que sea aplicará el if o el else correspondiente
Y por último guardará el nuevo estado en el mismo data del botón, para que al pulsar de nuevo comience todo el ciclo otra vez