Как работают операции сравнения > < == >= <= с различными типами данных?
Я уже совсем запутался. На сайте в учебнике 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
|