当前位置:首页 > JavaScript

js实现计算器代码

2026-01-30 17:54:14JavaScript

以下是一个简单的JavaScript计算器实现代码示例,包含基本运算功能(加、减、乘、除)和清除功能:

HTML结构

<div class="calculator">
  <input type="text" id="result" disabled>
  <div class="buttons">
    <button onclick="clearResult()">C</button>
    <button onclick="appendValue('7')">7</button>
    <button onclick="appendValue('8')">8</button>
    <button onclick="appendValue('9')">9</button>
    <button onclick="appendOperator('/')">/</button>
    <button onclick="appendValue('4')">4</button>
    <button onclick="appendValue('5')">5</button>
    <button onclick="appendValue('6')">6</button>
    <button onclick="appendOperator('*')">*</button>
    <button onclick="appendValue('1')">1</button>
    <button onclick="appendValue('2')">2</button>
    <button onclick="appendValue('3')">3</button>
    <button onclick="appendOperator('-')">-</button>
    <button onclick="appendValue('0')">0</button>
    <button onclick="appendValue('.')">.</button>
    <button onclick="calculate()">=</button>
    <button onclick="appendOperator('+')">+</button>
  </div>
</div>

CSS样式

.calculator {
  width: 200px;
  margin: 0 auto;
  padding: 20px;
  background: #f4f4f4;
  border-radius: 10px;
}

#result {
  width: 100%;
  margin-bottom: 10px;
  padding: 10px;
  font-size: 20px;
}

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

button {
  padding: 10px;
  font-size: 18px;
  border: none;
  border-radius: 5px;
  cursor: pointer;
}

button:hover {
  background: #ddd;
}

JavaScript逻辑

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

function appendValue(value) {
  currentInput += value;
  document.getElementById('result').value = currentInput;
}

function appendOperator(op) {
  if (currentInput === '' && previousInput === '') return;
  if (previousInput !== '') {
    calculate();
  }
  operation = op;
  previousInput = currentInput;
  currentInput = '';
}

function calculate() {
  let result;
  const prev = parseFloat(previousInput);
  const current = parseFloat(currentInput);

  if (isNaN(prev) || isNaN(current)) return;

  switch (operation) {
    case '+':
      result = prev + current;
      break;
    case '-':
      result = prev - current;
      break;
    case '*':
      result = prev * current;
      break;
    case '/':
      result = prev / current;
      break;
    default:
      return;
  }

  currentInput = result.toString();
  operation = null;
  previousInput = '';
  document.getElementById('result').value = currentInput;
}

function clearResult() {
  currentInput = '';
  previousInput = '';
  operation = null;
  document.getElementById('result').value = '';
}

功能扩展建议

为增强计算器功能,可考虑添加以下特性:

  • 支持连续运算(如1+2+3)
  • 添加退格按钮(删除最后一位)
  • 添加百分号计算功能
  • 键盘事件支持(允许键盘输入)
  • 科学计算功能(平方、开方等)
  • 历史记录功能

这个实现使用了基本的DOM操作和事件处理,适合初学者理解JavaScript与HTML的交互原理。实际项目中可能需要更复杂的错误处理和状态管理。

js实现计算器代码

标签: 计算器代码
分享给朋友:

相关文章

css网页制作代码

css网页制作代码

以下是一些常用的CSS网页制作代码示例,涵盖布局、样式和交互效果: 基础布局与样式 重置浏览器默认样式 * { margin: 0; padding: 0; box-sizing:…

网页表格制作css代码

网页表格制作css代码

基础表格样式 使用CSS为HTML表格添加基础样式,包括边框、间距和背景色: table { width: 100%; border-collapse: collapse; margin…

js计算器的实现

js计算器的实现

实现基础结构 HTML部分需要创建计算器的基本框架,包含显示区域和按钮。使用<div>容器包裹整个计算器,内部设置一个显示屏和多个按钮。 <div class="calculat…

vue抽奖代码实现

vue抽奖代码实现

Vue 抽奖代码实现 基础抽奖组件结构 使用 Vue 3 的 Composition API 实现抽奖功能,核心包括转盘动画、奖品列表和抽奖逻辑。以下为组件基础结构: <template&g…

vue代码核心实现

vue代码核心实现

Vue 核心实现原理 Vue.js 的核心实现主要包括响应式系统、虚拟 DOM、模板编译和组件化机制。以下是关键实现要点: 响应式系统 通过 Object.defineProperty(Vue 2)…

代码雨实现vue

代码雨实现vue

实现代码雨效果(Vue版) 使用Vue实现代码雨效果可以通过Canvas绘制结合动画帧实现。以下是完整实现方案: 核心代码结构 <template> <div class="…