В этом примере функция sanitise()
возвращает NaN
значение, если переданное значение не является числом
иначе он вернет переданное значение.
Case1: function sanitise(x) { if (isNaN(x)) { return NaN; } return x; } console.log(sanitise(1)); // expected output: "1" console.log(sanitise('NotANumber')); // expected output: NaN
Так что, если эта функция фильтрует и выводит то же самое , если аргумент
только число , а не строка или любой другой тип. Я вижу исключение в
дело 2.
В случае 2 я передаю переменную, содержащую строку (все, что
в кавычках). Чтобы подтвердить то же самое, я даже утешил тип значения
содержится в переменной «вход».
Case2: function sanitise(x) { if (isNaN(x)) { return NaN; } return x; } var input = '1'; console.log(typeof input); console.log(sanitise(input)); // expected output: NaN // But actual output: 1 console.log(sanitise('NotANumber')); // expected output: NaN
Так что теперь передаваемый аргумент является строкой, но все же строка
рассматривается как число . Пожалуйста, помогите мне понять, что здесь происходит?