当前位置:首页 > JavaScript

js 实现计算器

2026-02-28 23:13:25JavaScript

基础计算器实现

使用 JavaScript 创建一个基础计算器需要处理用户输入、运算逻辑和结果显示。以下是核心实现方法:

HTML 结构

<div class="calculator">
  <input type="text" id="result" disabled>
  <div class="buttons">
    <button onclick="appendToResult('7')">7</button>
    <button onclick="appendToResult('8')">8</button>
    <!-- 其他数字和操作符按钮 -->
    <button onclick="calculate()">=</button>
    <button onclick="clearResult()">C</button>
  </div>
</div>

JavaScript 逻辑

let currentInput = '';

function appendToResult(value) {
  currentInput += value;
  document.getElementById('result').value = currentInput;
}

function clearResult() {
  currentInput = '';
  document.getElementById('result').value = '';
}

function calculate() {
  try {
    const result = eval(currentInput);
    document.getElementById('result').value = result;
    currentInput = result.toString();
  } catch (error) {
    document.getElementById('result').value = 'Error';
    currentInput = '';
  }
}

高级计算器功能扩展

对于更复杂的科学计算器,需要引入数学函数库或扩展功能:

三角函数和高级运算

function sin() {
  currentInput = Math.sin(parseFloat(currentInput)).toString();
  updateDisplay();
}

function log() {
  currentInput = Math.log10(parseFloat(currentInput)).toString();
  updateDisplay();
}

表达式解析替代 eval

function safeEval(expr) {
  return Function('"use strict";return (' + expr + ')')();
}

键盘事件支持

添加键盘输入支持提升用户体验:

js 实现计算器

document.addEventListener('keydown', (e) => {
  if (/[0-9+\-*/.=]/.test(e.key)) {
    if (e.key === '=' || e.key === 'Enter') {
      calculate();
    } else {
      appendToResult(e.key);
    }
  } else if (e.key === 'Escape') {
    clearResult();
  }
});

注意事项

  • 避免直接使用 eval() 存在安全风险,生产环境应使用表达式解析库
  • 考虑添加输入验证防止非法表达式
  • 对于移动端需要优化触控体验
  • 添加历史记录功能可提升实用性

完整实现建议使用模块化方式组织代码,将显示逻辑与计算逻辑分离。对于商业项目,可以考虑使用现成的库如 math.js 处理复杂运算。

标签: 计算器js
分享给朋友:

相关文章

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…