Как isNaN проверяет значение Prompt, возвращающего только строку в этом коде? - PullRequest
0 голосов
/ 29 марта 2019

Насколько я знаю, Prompt возвращает только значение типа String. Тогда как работает приведенный ниже код?

var a = prompt('Number or String? Verify now!');

if(!isNaN(a)){
  alert('This is number.');
}
else alert('This is string.')

Ответы [ 2 ]

1 голос
/ 29 марта 2019

С https://www.w3schools.com/jsref/jsref_isNaN.asp, Глобальная функция isNaN () преобразует проверенное значение в число, а затем проверяет его.

Функция isNaN () определяет, является ли значение недопустимым числом (Not-a-Number).

Эта функция возвращает true, если значение равно NaN. В противном случае возвращается false.

Эта функция отличается от метода Number.isNaN () для конкретного номера.

Глобальная функция isNaN () преобразует проверенное значение в число, а затем проверяет его.

Number.isNaN () не преобразует значения в число и не возвращает значение true для любого значения, которое не относится к типу число.

0 голосов
/ 29 марта 2019

isFinite (значение) преобразует свой аргумент в число и возвращает true, если это обычное число, а не NaN / Infinity / -Infinity:

 alert( isFinite("15") ); // true
alert( isFinite("str") ); // false, because a special value: NaN

Иногда isFinite используется для проверки того, является ли строковое значение обычным числом, поэтому проверьте этот код

var a = prompt ('Число или строка? Проверить сейчас!');

if(isFinite(a)){
  alert('This is number.');
}
else alert('This is not number.')
...