当前位置:首页 > JavaScript

js实现点击计算器

2026-03-01 21:11:01JavaScript

实现点击计算器的 JavaScript 代码

以下是一个简单的点击计算器的实现代码,包含基本的加减乘除功能:

// 获取计算器元素
const display = document.getElementById('display');
const buttons = document.querySelectorAll('button');

let currentInput = '';
let previousInput = '';
let operation = null;

// 为每个按钮添加点击事件
buttons.forEach(button => {
  button.addEventListener('click', () => {
    const value = button.textContent;

    if (value >= '0' && value <= '9') {
      currentInput += value;
      display.value = currentInput;
    } else if (value === '.') {
      if (!currentInput.includes('.')) {
        currentInput += value;
        display.value = currentInput;
      }
    } else if (value === 'C') {
      currentInput = '';
      previousInput = '';
      operation = null;
      display.value = '';
    } else if (value === '=') {
      if (previousInput && currentInput && operation) {
        currentInput = calculate(previousInput, currentInput, operation);
        display.value = currentInput;
        previousInput = '';
        operation = null;
      }
    } else {
      if (currentInput) {
        if (previousInput) {
          previousInput = calculate(previousInput, currentInput, operation);
          display.value = previousInput;
        } else {
          previousInput = currentInput;
        }
        operation = value;
        currentInput = '';
      }
    }
  });
});

// 计算函数
function calculate(a, b, op) {
  a = parseFloat(a);
  b = parseFloat(b);

  switch (op) {
    case '+':
      return (a + b).toString();
    case '-':
      return (a - b).toString();
    case '*':
      return (a * b).toString();
    case '/':
      return (a / b).toString();
    default:
      return '';
  }
}

对应的 HTML 结构

<div class="calculator">
  <input type="text" id="display" readonly>
  <div class="buttons">
    <button>7</button>
    <button>8</button>
    <button>9</button>
    <button>/</button>
    <button>4</button>
    <button>5</button>
    <button>6</button>
    <button>*</button>
    <button>1</button>
    <button>2</button>
    <button>3</button>
    <button>-</button>
    <button>0</button>
    <button>.</button>
    <button>C</button>
    <button>+</button>
    <button>=</button>
  </div>
</div>

基本 CSS 样式

.calculator {
  width: 200px;
  margin: 0 auto;
}

#display {
  width: 100%;
  height: 40px;
  margin-bottom: 10px;
  text-align: right;
}

.buttons {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 5px;
}

button {
  height: 40px;
  font-size: 18px;
}

功能说明

这个计算器实现了以下功能:

  • 数字输入(0-9)
  • 小数点输入
  • 基本运算(加减乘除)
  • 清除功能(C按钮)
  • 计算结果(=按钮)

用户可以通过点击按钮输入数字和运算符,计算结果会显示在顶部的输入框中。每次计算后会清空之前的运算状态,准备下一次计算。

扩展建议

如果需要更复杂的功能,可以考虑添加:

js实现点击计算器

  • 括号运算
  • 百分比计算
  • 历史记录功能
  • 科学计算功能(平方、开方等)
  • 键盘支持
  • 响应式设计以适应不同屏幕尺寸

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

相关文章

vue实现拖拽计算器

vue实现拖拽计算器

Vue 拖拽计算器实现方案 核心功能分析 可拖拽组件:计算器整体或按钮需要支持拖拽 2.计算逻辑:实现基本四则运算功能 布局系统:支持动态调整计算器位置 基础实现步骤 安装依赖 需要vue-dragg…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现交换

js实现交换

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

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js怎么实现异步

js怎么实现异步

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

js实现搜索

js实现搜索

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