Сравнение на стойности с булев тип в JavaScript
В предишния пример използвахме за сравнение
оператор ===. В този случай нашата променлива
се сравняваше за равенство true както
по стойност, така и по тип.
За такова сравнение може да се използва и
оператор ==. Ако в променливата test
винаги ще има една от стойностите true
или false, то нищо няма да се промени:
let test = true; // тук пишем или true, или false
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Но ако в променливата test могат
да попадат всякакви стойности, тогава всичко става
много по-сложно.
В такъв случай, ако в променливата test
има небулева стойност, то тази стойност
първо ще бъде преобразувана към булев тип и едва
след това ще бъде сравнена.
Нека например в променливата test
има число 1. В този случай то първо
ще се преобразува към логически тип, тоест
към true. И след това ще се извърши сравнението:
let test = 1;
if (test == true) {
console.log('+++'); // ще се изпълни това
} else {
console.log('---');
}
Но например числото 0 се преобразува
към false. И нашето условие в резултат
ще изведе 'невярно':
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // ще се изпълни това
}
Всъщност такова сравнение може явно да се пренапише в следния вид:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Спомнете си и напишете кои стойности при
привеждане към логически тип дават
false.
Без да пускате кода, определете какво ще се изведе в конзолата:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Без да пускате кода, определете какво ще се изведе в конзолата:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Без да пускате кода, определете какво ще се изведе в конзолата:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Без да пускате кода, определете какво ще се изведе в конзолата:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Без да пускате кода, определете какво ще се изведе в конзолата:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Без да пускате кода, определете какво ще се изведе в конзолата:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Без да пускате кода, определете какво ще се изведе в конзолата:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}