Параўнанне значэнняў з булевым тыпам у 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('---');
}