Операторы выполняются слишком рано в калькуляторе JavaScriptJavascript

Форум по Javascript
Ответить
Anonymous
 Операторы выполняются слишком рано в калькуляторе JavaScript

Сообщение Anonymous »

Я строю калькулятор, используя JavaScript без использования eval (). Кнопки числа (Calculatornumbers) работают нормально, но когда я нажимаю на оператора (Calculatorportorators), он сразу пытается выполнить операцию, что приводит к неправильным результатам. Поведение.
Попытка преобразовать оператор в число Результаты NAN. < /p>
Нажмите на число, должно обновить экран ввода.
Нажмите на оператор, должен сохранить первое число и оператор, но не выполнять расчет немедленно. class = "Snippet-Code">

Код: Выделить всё

// calculator functions

function calculator() {
calculatorNumbers.forEach((btns) => {
btns.addEventListener("click", function(event) {
const btnsValues = Number(event.currentTarget.textContent);
inputScreen.value += btnsValues;
finalAnswer(btnsValues);
});
});

calculatorOperators.forEach((opBtns) => {
opBtns.addEventListener("click", function(event) {
const targetOpBtns = event.currentTarget.textContent;
inputScreen.value += targetOpBtns;
finalAnswer(targetOpBtns);
});
});
deleteOneNumber.addEventListener("click", function() {
let inputValueLength = Number(inputScreen.value.length - 1);
let deleteOneValue = inputScreen.value.slice(0, inputValueLength);
inputScreen.value = deleteOneValue;
});
clearAllNumbers.addEventListener("click", function(event) {
const target = event.currentTarget;
target ? (inputScreen.value = "") : null;
});
}

// function call
calculator();

// total function
function finalAnswer(value) {
//    console.log(number==="*");
let convertNumber = Number(value)
if (value === "*") {
inputScreen.value = (Number(inputScreen.value)) * convertNumber
}
if (value === "-") {
inputScreen.value = (Number(inputScreen.value)) - convertNumber
}
if (value === "+") {
inputScreen.value = (Number(inputScreen.value)) + convertNumber
}
if (value === "/") {
inputScreen.value = (Number(inputScreen.value)) / convertNumber
}
}



Подробнее здесь: https://stackoverflow.com/questions/794 ... calculator
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»