
用javascript制作一个简易计算器并不复杂,只需要HTML搭建界面,CSS美化样式,js实现计算逻辑。下面是一个完整、可运行的示例,适合初学者理解和上手。
1. 基础HTML结构
先创建一个简单的页面结构,包含显示屏和按钮:
<div class="calculator"> <input type="text" id="display" disabled /> <div class="buttons"> <button onclick="clearDisplay()">C</button> <button onclick="deleteChar()">←</button> <button onclick="appendValue('/')">÷</button> <button onclick="appendValue('*')">×</button> <button onclick="appendValue('7')">7</button> <button onclick="appendValue('8')">8</button> <button onclick="appendValue('9')">9</button> <button onclick="appendValue('-')">−</button> <button onclick="appendValue('4')">4</button> <button onclick="appendValue('5')">5</button> <button onclick="appendValue('6')">6</button> <button onclick="appendValue('+')">+</button> <button onclick="appendValue('1')">1</button> <button onclick="appendValue('2')">2</button> <button onclick="appendValue('3')">3</button> <button onclick="calculate()" rowspan="2">=</button> <button onclick="appendValue('0')" colspan="2">0</button> <button onclick="appendValue('.')">.</button> </div> </div>
2. 核心JavaScript功能
JS负责处理输入、计算和显示结果。以下是关键函数:
function appendValue(value) { document.getElementById("display").value += value; } function clearDisplay() { document.getElementById("display").value = ""; } function deleteChar() { let display = document.getElementById("display"); display.value = display.value.slice(0, -1); } function calculate() { let display = document.getElementById("display"); try { display.value = eval(display.value); } catch (e) { display.value = "错误"; } }
说明:
-
appendValue():向输入框追加数字或符号 -
clearDisplay():清空输入 -
deleteChar():删除最后一个字符 -
calculate():使用eval()计算表达式结果(注意:实际项目中需谨慎使用)
3. 简单CSS美化
让计算器看起来更像样:
.calculator { width: 300px; margin: 50px auto; border: 1px solid #ccc; border-radius: 10px; padding: 10px; background: #f9f9f9; font-family: Arial, sans-serif; } #display { width: 100%; height: 60px; font-size: 24px; text-align: right; margin-bottom: 10px; padding: 0 10px; box-sizing: border-box; } .buttons { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; } button { height: 60px; font-size: 18px; border: 1px solid #ddd; background: white; border-radius: 5px; cursor: pointer; } button:hover { background: #eee; } button:active { background: #ddd; } button[colspan="2"] { grid-column: span 2; } button[rowspan="2"] { grid-row: span 2; }
4. 安全性提示与优化建议
虽然eval()方便,但在生产环境不推荐直接使用。可以考虑以下改进:
基本上就这些。这个简易计算器涵盖了前端开发中的DOM操作、事件处理和基础逻辑判断,是练习JavaScript的好项目。不复杂但容易忽略细节,比如异常处理和用户误操作应对。自己动手改一改样式或增加百分比、正负切换等功能,会更有成就感。