Page 114 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 114

Операторы сравнения сравнивают значения один относительно другого и имеют
       смысл только для естественно упорядоченных типов данных, таких как строки ( 11 а 11
       предшествует "Ь11) и числа (О меньше 1). Операторы сравнения - меньше (<), мень­
       ше или равно (<=), больше (>) и больше или равно (>=).
       3  >  5 ;    11  fa lse
       3  >=  5 ;    11  fa lse
       3  <  5 ;    11  true
       3  <=  5 ;    11  true
       5  >  5 ;    11  fa lse
       5  >=  5 ;    11  true
       5  <  5 ;    11  false
       5  <=  5 ;    11  true


       Сравнение чи с ел

          При сравнении идентификаторов или чисел на равенство следует соблюдать осо­
       бую осторожность.
          В первую очередь, обратите внимание на то, что специальное числовое значение
       NaN не равно ничему, включая само себя (т.е. и NaN  ===  NaN, и NaN  ==  NaN дают
       false). Если вы хотите проверить, не является ли число NaN, используйте встроен­
       ную функцию isNaN: вызов isNaN ( х )   возвратит t r ue, если х является NaN, и false -
       в противном случае.
          Напомню, что все числа в JavaScript - двойной точности, а поскольку для этого
       типа характерны округления (ели это необходимо), вы можете столкнуться с непри­
       ятными неожиданностями при их сравнении.
                                                                     b
          Сравнивая  целые числа  (от NurnЬer . MIN _ SAFE _ INTEGER до  Num e r . МАХ_ SAFE _
       INTEGER включительно), вы можете безопасно использовать тождество для проверки
       равенства. При использовании дробных чисел лучше прибегнуть к оператору срав­
       нения, чтобы убедиться, что проверяемое вами число "достаточно близко" к исход­
       ному числу. Что значит "достаточно близко"? Это зависит от вашего приложения.
       В JavaScript доступна специальная числовая константа, NurnЬer .   EPSILON. Это очень
       маленькое значение (2 . 2 2 е-16), представляющее разницу, необходимую для двух чи­
       сел, чтобы они считались различными. Рассмотрим пример.
       let  n   =  О ;
            (
       while  t r ue)  {
           n  +=  0  . 1 ;
           i f ( n   ===  0 . 3 )   break;
       console . l o ( ' Stopped  at  $ { n }  ' ) ;
                 g
          Попытавшись запустить эту программу, вы будете неприятно удивлены: вместо
       того чтобы остановиться на значении  О .   3,  этот цикл  пропустит его и  продолжит



                                                               Сравнение чисел   1 1 3
   109   110   111   112   113   114   115   116   117   118   119