Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.10.2016, 02:13
Интересующийся
Отправить личное сообщение для Bizon4ik Посмотреть профиль Найти все сообщения от Bizon4ik
 
Регистрация: 03.11.2013
Сообщений: 15

Почему 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-й итерации?
Ответить с цитированием
  #2 (permalink)  
Старый 22.10.2016, 02:24
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,103

alert( Boolean('false') )
Потому что любая не пустая строка приводится к true. А data.value, очевидно, строка. В таких случаях надо явно сравнивать строки.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 22.10.2016, 02:30
Интересующийся
Отправить личное сообщение для Bizon4ik Посмотреть профиль Найти все сообщения от Bizon4ik
 
Регистрация: 03.11.2013
Сообщений: 15

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глюк firebug'а trikadin Оффтопик 23 16.01.2012 12:04
Ресайз элементов, как?код есть но не работает Александр х@к Элементы интерфейса 4 03.09.2011 16:00
Ресайз элемента, div-блока Magneto Элементы интерфейса 1 01.09.2011 00:15
Функция не возвращает false, почему? Vitaly jQuery 3 05.07.2009 15:05
Почему не загружается скрипт? prog90 Я не знаю javascript 14 11.06.2009 10:52