我正在练习Javascript,并从具有很多重复的计算器代码开始。我做了很多简化,但是我知道eval()方法不是...呵呵...“推荐”。
let currentResult = 0;
function calculate(method){
const calculation = `${currentResult} ${method} ${userInput.value}`;
currentResult = eval(calculation);
outputResult(currentResult, calculation);
}
addBtn.addEventListener('click', ()=> calculate('+'));
subtractBtn.addEventListener('click', ()=> calculate('-'));
multiplyBtn.addEventListener('click', ()=> calculate('*'));
divideBtn.addEventListener('click', ()=> calculate('/'));
您可以为每个运算符使用具有功能的对象。
const
operators = {
'+': (a, b) => a + b,
'-': (a, b) => a - b,
'*': (a, b) => a * b,
'/': (a, b) => a / b
};
let currentResult = 0;
function calculate(method) {
if (sign in operators) {
currentResult = operators[sign](currentResult, +userInput.value);
}
outputResult(currentResult, calculation);
}
addBtn.addEventListener('click', () => calculate('+'));
subtractBtn.addEventListener('click', () => calculate('-'));
multiplyBtn.addEventListener('click', () => calculate('*'));
divideBtn.addEventListener('click', () => calculate('/'));