在当今的Web开发领域,JavaScript已经成为网页交互的核心技术之一。其中,实现一个简易的计算器是一个很好的学习项目,它不仅可以帮助我们理解JavaScript的基本语法和DOM操作,还可以加深对事件处理和条件语句的认识。下面,我将详细地讲解如何一步步地在JavaScript中实现一个计算器。
创建HTML结构
首先,我们需要为计算器创建一个基本的HTML结构。这个结构将包括一个文本框用于显示结果,以及一组按钮用于输入数字和操作符。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>简易计算器</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="calculator">
<input type="text" id="display" disabled>
<button onclick="appendNumber('1')">1</button>
<button onclick="appendNumber('2')">2</button>
<button onclick="appendNumber('3')">3</button>
<button onclick="setOperation('+')">+</button>
<button onclick="appendNumber('4')">4</button>
<button onclick="appendNumber('5')">5</button>
<button onclick="appendNumber('6')">6</button>
<button onclick="setOperation('-')">-</button>
<button onclick="appendNumber('7')">7</button>
<button onclick="appendNumber('8')">8</button>
<button onclick="appendNumber('9')">9</button>
<button onclick="setOperation('*')">*</button>
<button onclick="appendNumber('0')">0</button>
<button onclick="calculate()">=</button>
<button onclick="clearDisplay()">C</button>
<button onclick="setOperation('/')">/</button>
</div>
<script src="script.js"></script>
</body>
</html>
在这个HTML代码中,我们创建了一个包含按钮和文本框的div元素,并为每个按钮设置了onclick事件,以便在点击时调用相应的JavaScript函数。
编写CSS样式
为了让计算器看起来更加美观,我们可以添加一些CSS样式。下面是一个简单的样式文件styles.css:
#calculator {
width: 200px;
margin: 0 auto;
}
#display {
width: 100%;
margin-bottom: 10px;
}
button {
width: 20%;
padding: 10px;
}
这段CSS代码设置了计算器的宽度和边距,并为显示结果和按钮设置了样式。
JavaScript逻辑
最后,我们需要编写JavaScript代码来实现计算器的逻辑。下面是一个简单的JavaScript脚本script.js:
let currentInput = '';
let previousInput = '';
let operation = null;
function appendNumber(number) {
currentInput += number;
updateDisplay();
}
function setOperation(op) {
if (currentInput === '') return;
if (previousInput !== '') {
calculate();
}
operation = op;
previousInput = currentInput;
currentInput = '';
}
function clearDisplay() {
currentInput = '';
previousInput = '';
operation = null;
updateDisplay();
}
function calculate() {
let result;
const prev = parseFloat(previousInput);
const current = parseFloat(currentInput);
if (isNaN(prev) || isNaN(current)) return;
switch (operation) {
case '+':
result = prev + current;
break;
case '-':
result = prev - current;
break;
case '*':
result = prev * current;
break;
case '/':
if (current === 0) {
alert('不能除以0!');
return;
}
result = prev / current;
break;
default:
return;
}
currentInput = result.toString();
operation = null;
previousInput = '';
updateDisplay();
}
function updateDisplay() {
document.getElementById('display').value = currentInput;
}
在这个脚本中,我们定义了几个函数来处理数字的输入、操作符的设置、计算结果的显示以及显示的更新。这些函数通过直接操作DOM元素来实现与用户的交互。
通过以上步骤,我们就完成了一个简易计算器的实现。当然,这只是一个基础版本,你可以根据需要添加更多的功能,如错误处理、更复杂的运算等。
