当前位置 : 主页 > 网页制作 > HTTP/TCP >

javascript怎么实现计算器代码

来源:互联网 收集:自由互联 发布时间:2023-08-07
Javascript是一门广泛应用于前端开发的编程语言,其中包括了很多实用的应用,其中就包括了计算器。无论是在PC端还是在移动端,都有许多JS开发的计算器在使用。下面就是介绍一些实

Javascript是一门广泛应用于前端开发的编程语言,其中包括了很多实用的应用,其中就包括了计算器。无论是在PC端还是在移动端,都有许多JS开发的计算器在使用。下面就是介绍一些实现计算器代码的方法。

一、基本结构

在开始编写计算器代码之前,我们首先应该了解一下它的基本结构。通常,一个计算器会由四个基本按钮组成,包括数字、操作符、等号和清除键。基于此,我们可以设计一个基本的HTML结构:

<div class="calculator">
  <input class="screen" readonly>
  <div class="buttons">
    <button class="number">0</button>
    <button class="number">1</button>
    <button class="number">2</button>
    <button class="op">+</button>
    <button class="number">3</button>
    <button class="number">4</button>
    <button class="number">5</button>
    <button class="op">-</button>
    <button class="number">6</button>
    <button class="number">7</button>
    <button class="number">8</button>
    <button class="op">*</button>
    <button class="number">9</button>
    <button class="op">.</button>
    <button class="op">/</button>
    <button class="clear">C</button>
    <button class="equal">=</button>
  </div>
</div>

在这个基本结构中,我们定义了一个calculator类作为容器。screen类的input标签用来显示计算结果,buttons类的按钮分别对应数字、操作符、等号和清除键。

二、处理点击事件

在上述HTML结构中,我们已经定义了各类按钮的类名,接下来我们需要编写相应的点击事件处理函数。如果一个按钮被点击,我们需要处理如下事情:

  1. 如果是数字按钮,需要在输入栏中显示相应数字;
  2. 如果是操作符按钮,需要判断当前输入的数字是否已经完整,并将其运算符保存下来;
  3. 如果是清除键,需要清空输入栏和运算符列表,并将输入栏内容重置为0;
  4. 如果是等号键,需要计算当前的表达式并将结果显示在输入栏上。

接着,我们定义一个Calculator类,将各种处理函数定义在类中:

class Calculator {
  constructor() {
    this.result = 0;
    this.operator = null;
    this.input = '';
    this.screen = document.querySelector('.screen');
  }

  addNumber(number) {
    this.input += number;
    this.updateScreen();
  }

  updateScreen() {
    this.screen.value = this.input;
  }

  addOperator(operator) {
    if (this.input !== '') {
      this.operator = operator;
      this.result = parseFloat(this.input);
      this.input = '';
      this.updateScreen();
    }
  }

  calculate() {
    if (this.operator !== null && this.input !== '') {
      switch (this.operator) {
        case '+':
          this.result += parseFloat(this.input);
          break;
        case '-':
          this.result -= parseFloat(this.input);
          break;
        case '*':
          this.result *= parseFloat(this.input);
          break;
        case '/':
          this.result /= parseFloat(this.input);
          break;
      }
      this.operator = null;
      this.input = this.result.toString();
      this.updateScreen();
    }
  }

  clear() {
    this.result = 0;
    this.operator = null;
    this.input = '';
    this.updateScreen();
  }
}

const calculator = new Calculator();

document.querySelectorAll('.number').forEach(button => {
  button.addEventListener('click', () => {
    calculator.addNumber(button.innerText);
  });
});

document.querySelectorAll('.op').forEach(button => {
  button.addEventListener('click', () => {
    calculator.addOperator(button.innerText);
  });
});

document.querySelector('.equal').addEventListener('click', () => {
  calculator.calculate();
});

document.querySelector('.clear').addEventListener('click', () => {
  calculator.clear();
});

在这个代码中,我们定义了一个Calculator类,使用构造函数初始化了计算器的状态,并定义了各种处理函数。在处理事件的过程中,我们使用了querySelectorAlladdEventListener,使得每个按钮都能够响应相应的点击事件。

三、结论

上一篇:怎么居中css
下一篇:没有了
网友评论