0
function isTrue(){
       var a = ('false' == false);
       console.log(a);
};
isTrue();
YURII
  • 399
  • 1
    А с чего бы true? –  May 05 '17 at 10:05
  • 2
    Потому, что 'false' != false. С одной стороны строка, а с другой булево выражение. – Pyramidhead May 05 '17 at 10:05
  • 1
    Потому что при сравнении String и Boolean оба операнда приводятся к Number, после чего происходит само сравнение. 'false' приводится к NaN, false - к 0. А NaN не равно 0. – Regent May 05 '17 at 10:14

1 Answers1

0

Проверим:

typeof('false'); // === 'string'
typeof(false); // === boolean
  • 1
    [] == false, при этом typeof([]) // objectи typeof(false); // === boolean так что показывает твой ответ? – Grundy May 05 '17 at 10:16
  • 1
    И что с того, что типы разные? console.log("0" == false); вполне себе выведет true, например. – Regent May 05 '17 at 10:16
  • В вопросе ==, а не ===. С чего бы типы тут сравнивать? – Qwertiy May 05 '17 at 10:16