Каков наилучший способ превратить подсказку в целое число в JS? - PullRequest
0 голосов
/ 17 марта 2020

Я пишу программу для выполнения "Русской математики" (используя видеофайл youtube на нем в качестве основы для алгоритма). Оно работает. Но, чтобы «доказать», что это работает, я даю пользователю возможность использовать свои собственные числа в качестве входных данных.
Когда я сам присваиваю номера переменным, это работает без сбоев. Тем не менее, когда я использую приглашение var numberOne = prompt('What is the first number you want to multiply?'); для одной переменной (при назначении другой), это работает. Но как только я предложу пользователю оба номера, он не будет работать. Предположительно, потому что строка может быть преобразована в целое число, когда над ней выполняется операция (умноженная на целое число), но, похоже, она не работает, когда обе строки являются строками.
Добавление еще одной строки для сброса переменной приглашения в целое число использование синтаксического анализа кажется слишком большим.

var numberOne = prompt('What is the first number you want to multiply?');
var numberTwo = prompt('What is the second number you want to multiply?');
var numberOneInt = parseInt(numberOne);
var numberTwoInt = parseInt(numberTwo);

Это действительно лучший способ сделать это?

1 Ответ

0 голосов
/ 17 марта 2020

Для подсказки, да, это почти то, что вы хотите сделать. Подсказка возвращает строку, поэтому вам необходимо преобразовать ее. Есть и другие способы, например, Number(numberOne), но parseInt в порядке. У них немного другое поведение, но для вашего случая они в основном одинаковы. (parseInt прекращает синтаксический анализ первого нечислового числа, в то время как приведение типов чисел пытается преобразовать все это).

И похвалу за выяснение поведения ребра при умножении одной строки и одного целого на одно.

Как правило, большинство разработчиков предпочитают использовать ввод на странице, а не подсказки. Проблема с подсказками заключается в том, что они прерывают пользовательский контроль над страницей. В качестве бонуса, с помощью входов вы можете установить type=number, чтобы на некоторых устройствах назначать элементы управления номерами пользователей и ограничивать ввод действительными номерами.

Редактировать

Надеюсь никогда не использовал подсказку, поэтому я читал о них. Стоит обратить внимание на то, что если пользователь нажимает escape, он возвращает null, что может нарушить ваш код. Вы можете предотвратить это, просто проверив сначала, например if(numberOne){ ... }

...