калькулятор
2)При первом сложении 2 чисел всё работает хорошо
3)При втором сложении чисел,я беру первое число как результат предыдущего выражения,а второе число которое ввёл пользователь.Но результат не верный.Почему?
https://codepen.io/andreyoch/pen/ExgXdmq
parseInt(num, 10) Number не нужен . Даже лучше parseFloat (), а не parseInt
Привет. Потому что ты каждый раз при нажатии на любой операнд регистрируешь +1 ивент на обработку нажатия equal
Так я же передаю значение в operate значение текущих переменных NumOne i NumTwo
У меня такой алгоритм: 1)Юзер кликает в оператор,копируем значение outPut и помещаем в NumOne,очищаем output 2)Юзер кликает на равно,он перед-этим уже ввёл числа,помещаем значение в NumTWo и складываем ,выводим значение в output.value И я повторяю операцию когда юзер кликает снова на оператор.И чего-то я не понимаю,свою ошибку
numberOne у тебя замыкается при регистрации обработчика и остается неизменным в рамках этого обработчика. А numberTwo до финального сложения каждый раз будет результатом предыдущего и так до бесконечности.
Спасибо,буду разбираться,но пока ничего не понял.Приравнял в конце числа к нулю,но тогда не будет работать с умножением
Либо переписывай, либо добавь once: true в опции обработчика equal
Спасибо большое,пойду читать доку
Тебе нужно почитать про замыкания и про addEventListener, тогда поймешь почему у тебя так происходило
Ещё раз спасибо,пойду тогда замыкания разберу
Обсуждают сегодня