В этой статье блога мы погрузимся в мир JavaScript и рассмотрим различные методы создания калькулятора, способного выполнять различные математические операции. Мы рассмотрим несколько подходов, каждый из которых использует разные операторные функции в JavaScript. Итак, начнём!
Метод 1: использование операторов if…else
function calculator(operator, num1, num2) {
if (operator === '+') {
return num1 + num2;
} else if (operator === '-') {
return num1 - num2;
} else if (operator === '*') {
return num1 * num2;
} else if (operator === '/') {
return num1 / num2;
} else {
return 'Invalid operator';
}
}
console.log(calculator('+', 5, 3)); // Output: 8
console.log(calculator('-', 5, 3)); // Output: 2
console.log(calculator('*', 5, 3)); // Output: 15
console.log(calculator('/', 6, 3)); // Output: 2
console.log(calculator('%', 6, 3)); // Output: Invalid operator
Метод 2: использование оператора Switch
function calculator(operator, num1, num2) {
switch (operator) {
case '+':
return num1 + num2;
case '-':
return num1 - num2;
case '*':
return num1 * num2;
case '/':
return num1 / num2;
default:
return 'Invalid operator';
}
}
console.log(calculator('+', 5, 3)); // Output: 8
console.log(calculator('-', 5, 3)); // Output: 2
console.log(calculator('*', 5, 3)); // Output: 15
console.log(calculator('/', 6, 3)); // Output: 2
console.log(calculator('%', 6, 3)); // Output: Invalid operator
Метод 3. Использование сопоставления объектов
const operators = {
'+': (a, b) => a + b,
'-': (a, b) => a - b,
'*': (a, b) => a * b,
'/': (a, b) => a / b,
};
function calculator(operator, num1, num2) {
if (operator in operators) {
return operators[operator](num1, num2);
} else {
return 'Invalid operator';
}
}
console.log(calculator('+', 5, 3)); // Output: 8
console.log(calculator('-', 5, 3)); // Output: 2
console.log(calculator('*', 5, 3)); // Output: 15
console.log(calculator('/', 6, 3)); // Output: 2
console.log(calculator('%', 6, 3)); // Output: Invalid operator
Метод 4: реализация указателей на функции
function add(a, b) {
return a + b;
}
function subtract(a, b) {
return a - b;
}
function multiply(a, b) {
return a * b;
}
function divide(a, b) {
return a / b;
}
function calculator(operator, num1, num2) {
const operators = {
'+': add,
'-': subtract,
'*': multiply,
'/': divide,
};
if (operator in operators) {
return operators[operator](num1, num2);
} else {
return 'Invalid operator';
}
}
console.log(calculator('+', 5, 3)); // Output: 8
console.log(calculator('-', 5, 3)); // Output: 2
console.log(calculator('*', 5, 3)); // Output: 15
console.log(calculator('/', 6, 3)); // Output: 2
console.log(calculator('%', 6, 3)); // Output: Invalid operator
Метод 5: использование функции eval() (внимание: угроза безопасности)
function calculator(operator, num1, num2) {
const expression = `${num1} ${operator} ${num2}`;
return eval(expression);
}
console.log(calculator('+', 5, 3)); // Output: 8
console.log(calculator('-', 5, 3)); // Output: 2
console.log(calculator('*', 5, 3)); // Output: 15
console.log(calculator('/', 6, 3)); // Output: 2
console.log(calculator('%', 6, 3)); // Output: NaN
В этой статье мы рассмотрели несколько методов создания универсального калькулятора на JavaScript с использованием различных операторных функций. Мы рассмотрели подходы с использованием операторов if…else, операторов переключения, сопоставления объектов, указателей на функции и даже функции eval() (с предупреждением о рисках безопасности). Каждый метод позволяет выполнять основные математические операции, такие как сложение, вычитание, умножение и деление. Понимая эти методы, вы сможете создавать мощные калькуляторы, отвечающие конкретным потребностям.