当前位置:首页 > 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 逻辑

js 实现计算器

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 = '';
  }
}

高级计算器功能扩展

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

三角函数和高级运算

js 实现计算器

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 + ')')();
}

键盘事件支持

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

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实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:CSS…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似:…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…