Показать сообщение отдельно
  #1 (permalink)  
Старый 29.06.2012, 12:59
Аспирант
Отправить личное сообщение для almac Посмотреть профиль Найти все сообщения от almac
 
Регистрация: 29.06.2012
Сообщений: 31

Как работают операции сравнения > < == >= <= с различными типами данных?
Я уже совсем запутался. На сайте в учебнике learn.javascript.ru сказано, что при сравнении типы данных приводятся к числам, и затем сравниваются. Но в любом случае на выходе, как я понимаю, должно получится булевое значение.
1. Например, if (true > false) вернет true, так как true (скорее всего) приводится к 1, а false - к 0.
2. NaN > 2 вернет false, так как в операциях с числами, где участвует NaN, там значение всего выражение приводится к NaN, что соответствует false (если я все верно понимаю)
3. true > undefined вернет false, так как undefined должно приводиться к NaN (ведь сказано же в учебнике, что сравниваются ЧИСЛА), но тогда возникают ВОПРОСы:

- Почему NaN == undefined будет false?? Ведь undefined по идее приводится к NaN во время сравнивания
- И почему null == undefined приводит к true?? Ведь null должен привестись к 0, а undefined к NaN.


Прошу вас, разъясните, как работает операция сравнивания в Javascript
Ответить с цитированием