当前位置:首页 > 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 = '';
}

功能扩展建议

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

js实现计算器代码

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

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

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

相关文章

css制作计算器界面

css制作计算器界面

使用CSS制作计算器界面 制作计算器界面需要结合HTML结构、CSS样式以及可能的JavaScript交互功能。以下是纯CSS部分的实现方法,创建一个基础计算器界面。 HTML结构 先构建一个简单的…

vue拖拽实现低代码

vue拖拽实现低代码

Vue拖拽实现低代码方案 基于现成库的方案(推荐) 使用成熟的拖拽库可以快速实现低代码功能,例如: vuedraggable:基于Sortable.js的Vue拖拽组件 vue-draggable-…

vue实现左右滑动代码

vue实现左右滑动代码

以下是一个基于 Vue 3 实现左右滑动功能的代码示例,结合手势识别和动画效果: 基础实现(使用 CSS 和事件监听) <template> <div class="slide…

vue联动实现代码

vue联动实现代码

Vue 联动实现代码 Vue 中实现联动效果通常涉及父子组件通信、状态管理或动态数据绑定。以下是几种常见的联动实现方式: 父子组件通信实现联动 通过 props 和 $emit 实现父子组件数据联动…

js代码实现vue文件

js代码实现vue文件

使用 JavaScript 解析和生成 Vue 文件 Vue 文件(.vue)通常包含模板、脚本和样式三部分。以下是使用 JavaScript 解析和生成 Vue 文件的方法。 解析 Vue 文件…

react如何进行代码拆分

react如何进行代码拆分

代码拆分的必要性 React应用随着功能增加,打包后的文件体积会显著增长,影响页面加载速度。代码拆分将代码分割成多个小块,按需加载,优化性能。 动态导入(Dynamic Imports) 使用ES6…