вы могли бы объяснить [Почему?] После прочтения этого:
NaN не проверяет, является ли переданное значение бесконечным или нет - он проверяет, оценивает ли входной val конец "Type: Number"-результат.Поскольку isNaN (строка) принята, поэтому: isNaN ("3.14") // false (что означает истину, данный токен успешно преобразован в тип числа)
Вы можете понять, что входное значениеможет оказаться неразрешенным грубым числом, даже математической операцией, такой простой как: (x / y);что, в свою очередь, может дать (+/- бесконечность) число.
Здесь x = 1, y = 0;значение (1/0). Затем isNaN (x / y) сначала оценивается как isNaN (1/0);затем isNaN (бесконечность) // ложь.Поскольку (1/0) = бесконечность имеет тип: «число», то есть typeof (1/0) // «число» isNaN должно и будет возвращать false.
Вы не хотите ставить «бесконечность»где ожидается номер конечного результата.