当前位置:首页 > JavaScript

js实现计算器代码

2026-04-04 09:36:43JavaScript

基础HTML结构

创建计算器的基本HTML结构,包含显示屏和按钮区域:

<div id="calculator">
  <input type="text" id="display" disabled>
  <div class="buttons">
    <button onclick="appendToDisplay('7')">7</button>
    <button onclick="appendToDisplay('8')">8</button>
    <button onclick="appendToDisplay('9')">9</button>
    <button onclick="appendToDisplay('/')">/</button>

    <button onclick="appendToDisplay('4')">4</button>
    <button onclick="appendToDisplay('5')">5</button>
    <button onclick="appendToDisplay('6')">6</button>
    <button onclick="appendToDisplay('*')">*</button>

    <button onclick="appendToDisplay('1')">1</button>
    <button onclick="appendToDisplay('2')">2</button>
    <button onclick="appendToDisplay('3')">3</button>
    <button onclick="appendToDisplay('-')">-</button>

    <button onclick="appendToDisplay('0')">0</button>
    <button onclick="appendToDisplay('.')">.</button>
    <button onclick="clearDisplay()">C</button>
    <button onclick="appendToDisplay('+')">+</button>

    <button onclick="calculate()">=</button>
  </div>
</div>

CSS样式设计

为计算器添加基本样式:

js实现计算器代码

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

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

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

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

JavaScript功能实现

实现计算器的核心逻辑:

let currentInput = '';

function appendToDisplay(value) {
  currentInput += value;
  document.getElementById('display').value = currentInput;
}

function clearDisplay() {
  currentInput = '';
  document.getElementById('display').value = '';
}

function calculate() {
  try {
    const result = eval(currentInput);
    document.getElementById('display').value = result;
    currentInput = String(result);
  } catch (error) {
    document.getElementById('display').value = 'Error';
    currentInput = '';
  }
}

高级功能扩展

增加键盘支持功能:

js实现计算器代码

document.addEventListener('keydown', function(event) {
  const key = event.key;

  if (/[0-9+\-*/.=]/.test(key)) {
    if (key === '=' || key === 'Enter') {
      calculate();
    } else {
      appendToDisplay(key);
    }
  } else if (key === 'Escape') {
    clearDisplay();
  } else if (key === 'Backspace') {
    currentInput = currentInput.slice(0, -1);
    document.getElementById('display').value = currentInput;
  }
});

安全改进方案

替换eval()实现更安全的计算:

function safeCalculate(expression) {
  const operators = ['+', '-', '*', '/'];
  const parts = expression.split(/([+\-*/])/);

  let result = parseFloat(parts[0]);

  for (let i = 1; i < parts.length; i += 2) {
    const operator = parts[i];
    const operand = parseFloat(parts[i+1]);

    if (operators.includes(operator) && !isNaN(operand)) {
      switch(operator) {
        case '+': result += operand; break;
        case '-': result -= operand; break;
        case '*': result *= operand; break;
        case '/': result /= operand; break;
      }
    } else {
      throw new Error('Invalid expression');
    }
  }

  return result;
}

完整实现示例

将上述代码整合到HTML文件中:

<!DOCTYPE html>
<html>
<head>
  <style>
    /* 之前提供的CSS样式 */
  </style>
</head>
<body>
  <!-- 之前提供的HTML结构 -->

  <script>
    // 之前提供的JavaScript代码
    // 替换calculate()函数中的eval为safeCalculate
  </script>
</body>
</html>

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

相关文章

网页表格制作css代码

网页表格制作css代码

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

vue代码实现管理

vue代码实现管理

Vue.js 管理后台实现方案 使用 Vue.js 构建管理后台系统通常涉及路由、状态管理、UI 组件库等核心模块。以下是关键实现方案: 基础框架搭建 安装 Vue CLI 创建项目: npm i…

vue 实现git代码对比

vue 实现git代码对比

Vue 实现 Git 代码对比 在 Vue 中实现 Git 代码对比功能,可以通过集成现有的代码对比库或调用 Git 相关 API 来实现。以下是几种常见的方法: 使用 diff2html 库 di…

vue实现计算器

vue实现计算器

Vue 实现计算器的方法 使用 Vue 实现计算器可以充分利用其响应式数据和组件化特性。以下是一个简单的实现方案: 创建 Vue 项目 使用 Vue CLI 或 Vite 初始化项目: npm i…

vue动画实现代码

vue动画实现代码

Vue 动画实现代码示例 Vue 提供了内置的过渡和动画支持,主要通过 <transition> 和 <transition-group> 组件实现。以下是常见的动画实现方式:…

vue实现代码块

vue实现代码块

Vue 实现代码块的常用方法 使用第三方库如 highlight.js 安装 highlight.js 并配置 Vue 插件,通过自定义指令或组件实现代码高亮。 npm install high…