当前位置:首页 > JavaScript

js计算器的实现

2026-01-15 15:09:39JavaScript

实现基础结构

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

<div class="calculator">
  <input type="text" id="display" readonly>
  <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="calculate()">=</button>
    <button onclick="clearDisplay()">C</button>
  </div>
</div>

添加CSS样式

通过CSS美化计算器外观,设置按钮布局和显示区域样式。使用Flexbox或Grid布局实现按钮排列。

.calculator {
  width: 300px;
  margin: 0 auto;
  border: 1px solid #ccc;
  padding: 20px;
  border-radius: 10px;
}
#display {
  width: 100%;
  height: 50px;
  margin-bottom: 20px;
  text-align: right;
  font-size: 24px;
}
.buttons {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
button {
  height: 50px;
  font-size: 18px;
  border-radius: 5px;
}

编写核心JavaScript功能

实现三个主要函数:数字/运算符输入、计算结果和清除显示。使用eval()函数执行计算,但需注意安全性问题。

let display = document.getElementById('display');

function appendToDisplay(value) {
  display.value += value;
}

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

function calculate() {
  try {
    display.value = eval(display.value);
  } catch (error) {
    display.value = 'Error';
  }
}

增强功能实现

添加退格、百分比等高级功能。通过字符串操作实现退格功能,数学运算实现百分比计算。

function backspace() {
  display.value = display.value.slice(0, -1);
}

function percentage() {
  display.value = eval(display.value) / 100;
}

错误处理与验证

添加输入验证防止非法表达式。检查最后一个字符是否为运算符,避免连续运算符。

function appendToDisplay(value) {
  const lastChar = display.value.slice(-1);
  if (['+', '-', '*', '/'].includes(lastChar) && 
      ['+', '-', '*', '/'].includes(value)) {
    return;
  }
  display.value += value;
}

键盘事件支持

添加键盘输入支持,监听keydown事件并映射到相应按钮功能。

document.addEventListener('keydown', function(event) {
  if (/[0-9+\-*/.=]/.test(event.key)) {
    if (event.key === '=' || event.key === 'Enter') {
      calculate();
    } else {
      appendToDisplay(event.key);
    }
  } else if (event.key === 'Backspace') {
    backspace();
  } else if (event.key === 'Escape') {
    clearDisplay();
  }
});

替代eval的方案

为提升安全性,可改用Function构造函数或数学表达式解析库替代eval。

function calculate() {
  try {
    display.value = new Function('return ' + display.value)();
  } catch {
    display.value = 'Error';
  }
}

js计算器的实现

标签: 计算器js
分享给朋友:

相关文章

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.define…

css制作计算器界面

css制作计算器界面

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

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swip…

vue实现拖拽计算器

vue实现拖拽计算器

Vue实现拖拽计算器的步骤 创建Vue项目 使用Vue CLI创建一个新项目,确保已安装Vue和必要的依赖项。通过命令行初始化项目并安装依赖。 vue create drag-calculator…

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…