Как работают операции сравнения > < == >= <= с различными типами данных?
Я уже совсем запутался. На сайте в учебнике 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 |
almac, это читали?
|
В спецификации описаны алгоритмы работы операторов, там наверное лучше и читать
http://es5.javascript.ru/x11.html#x11.8 |
Ужасно! Это ж надо было такое придумать... Всем спасибо за ссылки, придется привыкать к таким нестандартным обработкам простых действий
|
Часовой пояс GMT +3, время: 18:51. |