JavaScript 计算器代码实现加减乘除功能,主要涉及以下几个基础概念:
以下是一个简单的 JavaScript 计算器实现,包含加减乘除功能:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Calculator</title>
<style>
.calculator {
width: 200px;
margin: auto;
border: 1px solid #ccc;
padding: 20px;
}
.display {
width: 100%;
height: 40px;
margin-bottom: 10px;
text-align: right;
padding: 10px;
font-size: 20px;
}
.buttons {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 10px;
}
.button {
padding: 20px;
font-size: 18px;
cursor: pointer;
}
</style>
</head>
<body>
<div class="calculator">
<input type="text" class="display" id="display" disabled>
<div class="buttons">
<div class="button" onclick="clearDisplay()">C</div>
<div class="button" onclick="appendToDisplay('7')">7</div>
<div class="button" onclick="appendToDisplay('8')">8</div>
<div class="button" onclick="appendToDisplay('9')">9</div>
<div class="button" onclick="appendToDisplay('/')">/</div>
<div class="button" onclick="appendToDisplay('4')">4</div>
<div class="button" onclick="appendToDisplay('5')">5</div>
<div class="button" onclick="appendToDisplay('6')">6</div>
<div class="button" onclick="appendToDisplay('*')">*</div>
<div class="button" onclick="appendToDisplay('1')">1</div>
<div class="button" onclick="appendToDisplay('2')">2</div>
<div class="button" onclick="appendToDisplay('3')">3</div>
<div class="button" onclick="appendToDisplay('-')">-</div>
<div class="button" onclick="appendToDisplay('0')">0</div>
<div class="button" onclick="appendToDisplay('.')">.</div>
<div class="button" onclick="calculateResult()">=</div>
<div class="button" onclick="appendToDisplay('+')">+</div>
</div>
</div>
<script>
const display = document.getElementById('display');
function appendToDisplay(value) {
display.value += value;
}
function clearDisplay() {
display.value = '';
}
function calculateResult() {
try {
display.value = eval(display.value);
} catch (e) {
display.value = 'Error';
}
}
</script>
</body>
</html>
eval
函数可能存在安全风险,因为它会执行传入的字符串作为代码。math.js
,或者自己实现一个简单的表达式解析器。// 使用 math.js 替代 eval
function calculateResult() {
try {
display.value = math.evaluate(display.value);
} catch (e) {
display.value = 'Error';
}
}
decimal.js
来处理高精度计算。// 使用 decimal.js 处理高精度计算
const Decimal = require('decimal.js');
function calculateResult() {
try {
const expression = display.value.replace(/x/g, '*');
const result = new Decimal(expression).toNumber();
display.value = result;
} catch (e) {
display.value = 'Error';
}
}
通过以上方法,可以有效提升计算器的安全性和准确性。
领取专属 10元无门槛券
手把手带您无忧上云