Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему false == false равно false (https://javascript.ru/forum/misc/65491-pochemu-false-%3D%3D-false-ravno-false.html)

Bizon4ik 22.10.2016 02:13

Почему 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-й итерации?

Aetae 22.10.2016 02:24

alert( Boolean('false') )
Потому что любая не пустая строка приводится к true. А data.value, очевидно, строка. В таких случаях надо явно сравнивать строки.

Bizon4ik 22.10.2016 02:30

Огромное спасибо за исчерпывающий ответ


Часовой пояс GMT +3, время: 12:32.