Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Что не так с js кодом?

Виктор Ромашов Ученик (165), открыт 3 недели назад
 a = '' 
b = ''
sign = ''
finish = false

digit = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.']

action = ['+', '-', 'X', '/']

out = document.querySelector('.calc-screen p')

function ClearAll() {
a = ''
b = ''
sign = ''
finish = false
out.textContent = 0
}

document.querySelector('.ac').onclick = ClearAll

document.querySelector('.calc-buttons').onclick = event => {
if (!event.target.classList.contains('.btn')) return
if (event.target.classList.contains('.ac')) return

out.textContent = ''

key = event.target.textContent

if (digit.includes(key)) {
a += key
console.log(a, sign, b)
out.textContent = a
}

if (action.includes(key)) {
sign += key
console.log(a, sign, b)
out.textContent = sign
}
}

Имеется следующий код, пишу калькулятор по туториалу с ютуба - https://www.youtube.com/watch?v=Gquaiuj-VpU
При попытке протестировать - нету не консоль лога, ничего не происходит. JS скрипт подключен, так как при добавлении строчки вначале console.log('its work') - its work выводится в консоли, но остальной код будто закоментирован. Пробовал давать свои значения переменным что в верстке HTML, что в JS, потом поменял все как на ютубе - ничего не работает, но остальные скрипты работают. Live Server пробовал перезапускать.
2 ответа
Матвей Фролов Мыслитель (7887) 3 недели назад
Хз, вот что чат гпт сказал

На первый взгляд, ваш код содержит несколько ошибок и недочетов. Позвольте мне указать на основные проблемы и их возможные решения.

1. **Некорректное условие в обработчике кликов.** В условии обработчика кликов на кнопку проверка `.btn` должна быть без точки

2. **Перепутанные добавления в строки `a` и `b`.** Ваш код всегда добавляет цифры к `a` и символ к `sign`, независимо от того, завершено ли выражение

3. **Оператор должен быть заменен только один раз.** Следует заменить `sign` на значение текущего оператора только один раз

4. **Добавьте обработчик для кнопки "равно" для завершения вычисления.** Нет кода для вычисления результата. Добавьте обработчик и логику
Похожие вопросы