Porównywanie wartości z typem boolean w JavaScript
W poprzednim przykładzie użyliśmy do porównania
operatora ===. W tym przypadku nasza zmienna
była porównywana pod kątem równości true zarówno
pod względem wartości, jak i typu.
Do takiego porównania można również użyć
operatora ==. Jeśli w zmiennej test
zawsze będzie jedna z wartości true
lub false, to nic się nie zmieni:
let test = true; // tu piszemy albo true, albo false
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
A jeśli do zmiennej test mogą
trafiać dowolne wartości, wszystko staje się
dużo bardziej skomplikowane.
W takim przypadku, jeśli w zmiennej test
znajduje się wartość niebędąca typem boolean, to wartość ta
najpierw zostanie przekształcona na typ boolean i dopiero
następnie będzie porównywana.
Załóżmy na przykład, że w zmiennej test
znajduje się liczba 1. W tym przypadku najpierw
zostanie ona przekształcona na typ logiczny, czyli
na true. A następnie zostanie wykonane porównanie:
let test = 1;
if (test == true) {
console.log('+++'); // to się wykona
} else {
console.log('---');
}
A na przykład liczba 0 przekształca się
na false. I nasz warunek w rezultacie
wypisze 'nieprawidłowo':
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // to się wykona
}
W zasadzie takie porównanie można wyraźnie przepisać w następującej formie:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Przypomnijcie sobie i napiszcie, jakie wartości
przy przekształcaniu na typ logiczny dają
false.
Bez uruchamiania kodu określ, co zostanie wypisane w konsoli:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Bez uruchamiania kodu określ, co zostanie wypisane w konsoli:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Bez uruchamiania kodu określ, co zostanie wypisane w konsoli:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Bez uruchamiania kodu określ, co zostanie wypisane w konsoli:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Bez uruchamiania kodu określ, co zostanie wypisane w konsoli:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Bez uruchamiania kodu określ, co zostanie wypisane w konsoli:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Bez uruchamiania kodu określ, co zostanie wypisane w konsoli:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}