Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

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

123456789101112131415161718192021222324252627282930313233343536373839404142
 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 пробовал перезапускать.

По дате
По рейтингу
Аватар пользователя
Мудрец

Хз, вот что чат гпт сказал

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

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

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

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

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

Аватар пользователя
Знаток

переправерь