Здравствуйте. Помогите разрешить наш с другом спор. Он прислал мне свой калькулятор, я сказал, что это плохой код, он-же утверждает обратное. Вот сам код:
let input = document.querySelector('.calculator-input'),
buttons = document.querySelectorAll('.calculator-button'),
clearInputButton = document.querySelector('.clearInput'),
calculateButton = document.querySelector('.calculate');
let insertToInput = (value) => {
if (input.value.length > 12 || value.toString().length > 12) {
input.value = 'Number too large';
return;
}
input.value += value;
}
let clearInput = () => {
input.value = '';
}
let calculate = (str) => {
clearInput();
let res = eval(str);
if (/\/0$/g.test(str) || isNaN(res)) {
return insertToInput('Error');
} else if (/0\.\d\+0\.\d/g.test(str)) {
return insertToInput(res.toFixed(1));
} else if (/0\.\d\*0\.\d/g.test(str)) {
let numsArr = str.split('*');
let firstNum = numsArr[0];
let secondNum = numsArr[1];
return insertToInput((firstNum * 10) * (secondNum * 10) / (10 * 10));
}
insertToInput(res);
}
for (let button of buttons) {
button.addEventListener('click', (e) => {
let calcSymbol = e.target.getAttribute('data-symbol');
insertToInput(calcSymbol);
});
}
clearInputButton.addEventListener('click', clearInput);
calculateButton.addEventListener('click', () => {
let stroke = input.value;
calculate(stroke);
});
Заранее спасибо за ответ.