Почему 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, время: 18:45. |