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

