当前位置:首页 > 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实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…