当前位置:首页 > 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实现拖拽计算器的步骤 创建Vue项目 使用Vue CLI创建一个新项目,确保已安装Vue和必要的依赖项。通过命令行初始化项目并安装依赖。 vue create drag-calculator…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

节流js实现

节流js实现

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

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

js 实现图片轮播

js 实现图片轮播

基础实现方案 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS负责样式布局,JavaScript处理轮播逻辑。 <div class="…