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

Не работают кнопки в калькуляторе на javascript

Лиза Борисова Ученик (114), на голосовании 4 дня назад
 let a = ''; // first number
let b = ''; // second number
let sign = ''; // знак операции
let finish = false;

const digit = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.'];
const action = ['-', '+', 'X', '/'];

// экран
const out = document.querySelector('.calc-screen p');

function clearAll () {
a = ''; // first number and result
b = ''; // second number
sign = ''; // знак
finish = false
out.textContent = 0;
}

document.querySelector('.ac').onclick = clearAll;

document.querySelector('.buttons').onclicl = (event) => {
// нажата не кнопка
if(!event.target.classList.contains('btn')) return;
// нажата кнопка clearAll
if (event.target.classList.contains('ac')) return;

out.textContent = '';
// получаю нажатую кнопку
const key = event.terget.textContent;

// если нажата клавиша 0-9 или .
if (digit.includes(key)) {
if (b ==='' && sign === ''){
a += key;
console.log(a, b, sign);
out.textContent = a;
}
else if (a!=='' && b!=='' && finish) {
b = key;
finish = false;
out.textContent = b;
}
else {
b += key;
out.textContent = b;
}
console.table(a, b, sign);
return;
}

// если нажата клавиша + - X /
if (action.includes(key)) {
sign = key;
out.textContent = sign;
console.table(sign);
return;
}

// нажата =
if (key === '=') {
if (b ==='') b = a;
switch (sign) {
case "+":
a = (+a) + (+b);
break;
case "-":
a = a - b;
break;
case "X":
a = a * b;
break;
case "/":
if (b === '0') {
out.textContent = 'Ошибка';
a = '';
b = '';
sign = '';
return;
}
a = a / b;
break;
}
finish = true;
out.textContent = a;
console.table(a, b, sign);
}

}

Может быть дело в html?
Голосование за лучший ответ
Рукажоп Просветленный (25050) 1 месяц назад

?
Читай текст ошибки в консоли перед тем как публиковать вопрос. Ошибка простейшая.
DlazderМудрец (12135) 1 месяц назад
Лиза БорисоваУченик (114) 1 месяц назад
в том то и дело что консоль не выдавала ошибок
Рукажоп Просветленный (25050) Лиза Борисова, должна. JS файл хоть подключила? И правильно ли?
Похожие вопросы