当前位置:首页 > 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
分享给朋友:

相关文章

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

节流js实现

节流js实现

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

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数:…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: funct…

js怎么实现异步

js怎么实现异步

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