мое второе приложение по расчету стоимости заказа
maxs mass

я новичок, осваиваю javascript, хочу поделиться своим приложением. Это продолжение предыдущего - https://geekbrains.ru/topics/2195.

Основная идея - приложение для фрилансера, чтобы рассчитать стоимость заказа по форматированию текста. Можно также использовать для копирайтеров, корректоров и др., надо только поменять формулу расчета. В этой версии учитывается, что заказчики могут называть объем текста в разных единицах измерения - страницы, знаки, авторские листы.

С учетом этого делается ветвление, 3 вложенных условия, а также добавляется случай, если заказчик введет неправильно название единицы измерения. Для реализации проверки вводится функция и рекурсия. Ниже код приложения.

var obyem=+prompt("Укажите объем текста (только цифры):")

vvodEdIzm();

function vvodEdIzm()
{   
    var edIzm=prompt("Укажите единицу измерения: если в авторских листах - введите ал, если в страницах - стр, если в знаках - зсп")

    if(edIzm == "ал") // здесь начинается расчет в зависимости от единицы измерения
    {
        obyem=obyem*40000/1800*10/30*100; // формула расчета
        obyem=Math.round(obyem); // округляем результат до целых
        alert ("Стоимость форматирования данного текста составляет - "+ (obyem.toLocaleString()) +" р."); /* выводим результат на печать и по ходу для удобства зрительного восприятия делим пробелами число на разряды */
    }
    else
    {
        if(edIzm == "стр") // те же 3 операции для другой единицы измерения
        {
            obyem=obyem*10/30*100;
            obyem=Math.round(obyem);
            alert ("Стоимость форматирования данного текста составляет - "+ (obyem.toLocaleString()) +" р.");
        }
        else
        {
            if(edIzm == "зсп") // те же 3 операции для третьей единицы измерения
            {
                obyem=obyem/1800*10/30*100;
                obyem=Math.round(obyem);
                alert ("Стоимость форматирования данного текста составляет - "+ (obyem.toLocaleString()) +" р.");
            }
            else
            {
                alert ("Единица измерения указана неправильно. Введите её еще раз. Внимательно прочтите инструкцию");
                vvodEdIzm(); /* Если какая-то единица измерения указана неправильно, выводим сообщение об ошибке и запускаем функцию ввода единиц измерения заново */
            }
        }
    }
}

По ходу возник один вопрос - как сделать проверку возможных ошибок заказчика, когда он вместо цифры в первом окне введет число буквами? Вот эта строка кода

var obyem=+prompt("Укажите объем текста (только цифры):")

Т.е. если вместо числа будут введены буквы, то как зафиксировать эту ошибку? Нужно вывести сообщение об ошибке, а затем вернуться к окну ввода.

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

maxs mass 8 месяцев назадСпасибо 0
2 чел.