Почему false == false равно false
Вот часть моего кода:
buttons.map(function(data) {
let checked = undefined;
count++;
console.log('data.value = ' + data.value + " " + typeof Boolean(data.value));
console.log('default = ' + defaultValue + ' ' + typeof defaultValue)
console.log(Boolean(data.value) == defaultValue)
console.log('-----------------------------')
if (Boolean(data.value) == defaultValue) {
console.log('inside checked')
checked = 'checked';
}
Данный кусок вывод в консоль следующее: data.value = true boolean default = false boolean false ----------------------------- data.value = false boolean default = false boolean false ----------------------------- data.value = true boolean default = false boolean false ----------------------------- data.value = false boolean default = false boolean false ----------------------------- Объясните, пожалуйста, почему мой код не заходит в блок if во второй и 4-й итерации? |
alert( Boolean('false') )
Потому что любая не пустая строка приводится к true. А data.value, очевидно, строка. В таких случаях надо явно сравнивать строки. |
Огромное спасибо за исчерпывающий ответ
|
| Часовой пояс GMT +3, время: 15:33. |