JavaScript 实现简单计算器:含代码示例与输入验证、异常处理建议
当然!以下是一个简单的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>Simple Calculator</title> </head> <body> <h1>Simple Calculator</h1> <label for="num1">Number 1:</label> <input type="number" id="num1" required><br><br> <label for="num2">Number 2:</label> <input type="number" id="num2" required><br><br> <label for="operator">Operator:</label> <select id="operator"> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select><br><br> <button onclick="calculate()">Calculate</button> <p id="result"></p> <script src="calculator.js"></script> </body> </html> ``` 接下来,我们编写一个名为`calculator.js`的JavaScript文件来实现计算逻辑: ```javascript function calculate() { // 获取用户输入的值 const num1 = parseFloat(document.getElementById('num1').value); const num2 = parseFloat(document.getElementById('num2').value); const operator = document.getElementById('operator').value; const resultElement = document.getElementById('result'); let result; // 根据运算符执行相应的计算 switch (operator) { case '+': result = num1 + num2; break; case '-': result = num1 - num2; break; case '*': result = num1 * num2; break; case '/': // 检查除数是否为零,避免除以零的错误 if (num2 === 0) { resultElement.textContent = "Error: Division by zero!"; return; } result = num1 / num2; break; default: resultElement.textContent = "Error: Invalid operator!"; return; } // 显示结果 resultElement.textContent = `Result: ${result}`; } ``` 三条额外需要注意的逻辑点: 1. 输入验证:确保用户输入的是有效的数字,可以通过添加正则表达式验证来增强输入验证。 2. 异常处理:除了除以零的检查外,还可以添加更多的异常处理逻辑,例如处理非数字输入。 3. 用户体验:为了提高用户体验,可以在用户输入无效数据时给出更友好的提示,并在用户正确输入后自动清除输入框以便进行下一次计算。 ######[AI写代码神器 | 707点数解答 | 2025-03-07 15:20:00]
- Java实现链表反转:迭代与递归双解法详解及开发实战指南(DeepSeek | 1409点数解答 | 2026-03-15 15:09:29)55
- Python程序:验证20亿内偶数分解为最小素数对,证实哥德巴赫猜想!(阿里通义 | 667点数解答 | 2024-11-11 19:20:44)463
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)371
- 探寻数组中最长摆动子序列长度:思路剖析与代码优化(GPT | 758点数解答 | 2024-12-23 23:18:29)286
- 独家剖析:求解数组最长摆动子序列长度的代码实现与改进建议(GPT | 350点数解答 | 2024-12-23 23:20:54)285
- 代码揭秘:栈助力中缀表达式转后缀并精准计算!(字节豆包 | 979点数解答 | 2024-10-12 20:35:40)228
- Python 实现 DES 加密算法编程实验:从原理到单步调试全解析(字节豆包 | 4096点数解答 | 2025-11-09 22:06:30)88
- CentOS下Java进程出现futex_wait_queue_me问题的处理全流程(阿里通义 | 283点数解答 | 2023-11-20 14:51:26)482
- 替雷利珠单抗致免疫相关性糖尿病:病例报道与机制探讨,为临床用药敲响警钟( | 164点数解答 | 2024-10-11 14:52:52)285
- Python 代码转 C++:计算花朵鲜艳值总和(字节豆包 | 408点数解答 | 2026-04-19 21:50:57)17
- C++实现计算字符矩阵中十字图形个数(字节豆包 | 333点数解答 | 2026-03-14 19:46:38)40
- C++实现矩阵中十字图形个数的计算(字节豆包 | 847点数解答 | 2026-03-14 20:19:15)38