Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   странное преобразование true false (https://javascript.ru/forum/misc/59325-strannoe-preobrazovanie-true-false.html)

kuzroman 05.11.2015 23:15

странное преобразование true false
 
Всем привет!
Кто нибудь может объяснить такое поведение?
Как это называется и где можно почитать об этом?

if ('2') console.log(true);  // условие выполнено, значит '2' == true
// , но
console.log( '2' == true ); // false

аналогично
console.log( 1 == true ); // true
console.log( 2 == true ); // false

laimas 05.11.2015 23:32

if ('2') - возвращает булево значение, истинно ли значение. В данном случае это проверка не является ли значение пустым, false или null, а не сравнивает строку '2' с чем-то, поэтому и возвращается true. Но строка '2' не равна значению true и проверка этого if ( '2' == true ) вернет false.

alert(true == true) // true
alert(1 == true) // true - true собственно и есть 1, например true - 1 = 0
alert(2 == true) // false

kuzroman 05.11.2015 23:48

laimas, А, ну да, логично, вспомнил азы школьной информатики, спасибо!

loljs 06.11.2015 13:27

Внутри иф всегда происходит приведение к булеву значению. Вам тут что-то сильно намудрили.


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