Қиёми арзишҳо бо навъи булӣ дар 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('---');
}