Задать вопрос

Как вам калькулятор новичка?

учу JS меньше недели, сегодня решил написать что-нибудь простое, выбор пал на калькулятор.
В общем и целом калькулятор с горе по полам сделал, но хотелось бы его доработать, чтобы поле для ввода чисел было только одно, пока голова не варит, как это реализовать. Есть только мысль через циклы и функции в нем, но мне кажется я не правильно мыслю. Ниже приложил код, хотелось бы услышать мнение, что можно было бы исправить/упростить/переделать, но не из разряда хардкор.
P.S классы и названия переменных немного от балды написаны, прошу не придираться.
<div class="calculator">
        <input class="num1" type="text" placeholder="Число">
        <div class="case__button">
            <button value="+">+</button>
            <button value="-">-</button>
            <button value="*">*</button>
            <button value="/">/</button>
        </div>
        <input class="num2" type="text" placeholder="Число">
        <input class="result" type="text" placeholder="Результат">

    <button class="f1">Посчитать</button>
</div>


let num1 = document.querySelector('.num1');
let num2 = document.querySelector('.num2');
let resultField = document.querySelector('.result');
let selectedSign;

const button2 = document.querySelector('.f1');

document.querySelector('.case__button').onclick = (event) => {
    if (event.target.tagName === 'BUTTON') {
        selectedSign = event.target.value;
    }
};

button2.onclick = () => {
    let a = parseInt(num1.value, 10);
    let b = parseInt(num2.value, 10);

    let result;
    switch (selectedSign) {
        case '+':
            result = a + b;
            break;
        case '-':
            result = a - b;
            break;
        case '*':
            result = a * b;
            break;
        case '/':
            result = a / b;
            break;
    }
    resultField.value = result;
};
  • Вопрос задан
  • 114 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
P.S классы и названия переменных немного от балды написаны, прошу не придираться.

Ну да, и такое будет на каждое замечание. Делайте так чтобы не надо было потом писать "не придираться".

По факту:
- нет обработки ошибок (от банальной деления на ноль, до ввода кривых данных
- именование классов, переменных - так себе
- есть какой то аргумент почему используются классы а не id?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы