纯javascript代码实现计算器功能(三种方法)

当我们想在网页中添加一个计算器功能的时候,可以使用Javascript来实现。以下是三种使用Javascript实现计算器功能的方法:

方法一:利用eval()函数计算表达式

HTML文档中添加以下代码:

<div id="container">
    <input type="text" id="display" readonly>
    <div class="buttons">
        <button onClick="addToDisplay('1')">1</button>
        <button onClick="addToDisplay('2')">2</button>
        <button onClick="addToDisplay('3')">3</button>
        <button onClick="addToDisplay('+')">+</button>
        <br>
        <button onClick="addToDisplay('4')">4</button>
        <button onClick="addToDisplay('5')">5</button>
        <button onClick="addToDisplay('6')">6</button>
        <button onClick="addToDisplay('-')">-</button>
        <br>
        <button onClick="addToDisplay('7')">7</button>
        <button onClick="addToDisplay('8')">8</button>
        <button onClick="addToDisplay('9')">9</button>
        <button onClick="addToDisplay('*')">*</button>
        <br>
        <button onClick="addToDisplay('0')">0</button>
        <button onClick="addToDisplay('.')">.</button>
        <button onClick="calculate()">=</button>
        <button onClick="addToDisplay('/')">/</button>
        <br>
    </div>
</div>

Javascript文件中添加以下代码:

function addToDisplay(s) {
    //获取输入框元素
    var display = document.getElementById("display");
    display.value += s;
}

function calculate() {
    //获取输入框元素
    var display = document.getElementById("display");
    //利用eval()函数计算表达式
    try {
        display.value = eval(display.value);
    } catch (e) {
        alert("Invalid Input");
        display.value = "";
    }
}

将以上代码加入到HTML文档和Javascript文件中后,即可实现简单的计算器功能。在网页中输入数字和运算符,点击等号可以计算结果。需注意,eval函数执行字符串包含的JS代码,需要注意安全风险。

方法二:使用自定义计算器引擎计算表达式

Javascript文件中添加以下代码:

//自定义计算器引擎
var calculator = {
    total: 0,
    operation: "+",
    clear: function () {
        this.total = 0;
        this.operation = "+";
    },
    add: function (n) {
        this.total += n;
    },
    subtract: function (n) {
        this.total -= n;
    },
    multiply: function (n) {
        this.total *= n;
    },
    divide: function (n) {
        this.total /= n;
    },
    calculate: function (s) {
        var arr = s.match(/[\d\.]+|[^\d\.]+/g);
        var num = parseFloat(arr.shift());
        while (arr.length > 0) {
            var op = arr.shift();
            var nxt = parseFloat(arr.shift());
            switch (op) {
                case "+":
                    this.add(nxt);
                    break;
                case "-":
                    this.subtract(nxt);
                    break;
                case "*":
                    this.multiply(nxt);
                    break;
                case "/":
                    this.divide(nxt);
                    break;
                default:
                    throw "Invalid Operator";
            }
        }
        return this.total;
    }
}

function addToDisplay(s) {
    //获取输入框元素
    var display = document.getElementById("display");
    display.value += s;
}

function calculate() {
    //获取输入框元素
    var display = document.getElementById("display");
    //使用自定义计算器引擎计算表达式
    try {
        display.value = calculator.calculate(display.value);
    } catch (e) {
        alert(e);
        display.value = "";
    }
}

将以上代码加入到Javascript文件中后,在HTML文档中添加以下代码:

<div id="container">
    <input type="text" id="display" readonly>
    <div class="buttons">
        <button onClick="addToDisplay('1')">1</button>
        <button onClick="addToDisplay('2')">2</button>
        <button onClick="addToDisplay('3')">3</button>
        <button onClick="addToDisplay('+')">+</button>
        <br>
        <button onClick="addToDisplay('4')">4</button>
        <button onClick="addToDisplay('5')">5</button>
        <button onClick="addToDisplay('6')">6</button>
        <button onClick="addToDisplay('-')">-</button>
        <br>
        <button onClick="addToDisplay('7')">7</button>
        <button onClick="addToDisplay('8')">8</button>
        <button onClick="addToDisplay('9')">9</button>
        <button onClick="addToDisplay('*')">*</button>
        <br>
        <button onClick="addToDisplay('0')">0</button>
        <button onClick="addToDisplay('.')">.</button>
        <button onClick="calculate()">=</button>
        <button onClick="addToDisplay('/')">/</button>
        <br>
    </div>
</div>

现在,使用自定义计算器引擎计算表达式的方法,即可实现网页计算器。在网页中输入数字和运算符,点击等号即可计算出结果。

方法三:使用Vue.js实现计算器

HTML文档中添加以下代码:

<div id="calculator">
    <input type="text" v-model="display" readonly>
    <div class="buttons">
        <button v-on:click="addToDisplay('1')">1</button>
        <button v-on:click="addToDisplay('2')">2</button>
        <button v-on:click="addToDisplay('3')">3</button>
        <button v-on:click="addToDisplay('+')">+</button>
        <br>
        <button v-on:click="addToDisplay('4')">4</button>
        <button v-on:click="addToDisplay('5')">5</button>
        <button v-on:click="addToDisplay('6')">6</button>
        <button v-on:click="addToDisplay('-')">-</button>
        <br>
        <button v-on:click="addToDisplay('7')">7</button>
        <button v-on:click="addToDisplay('8')">8</button>
        <button v-on:click="addToDisplay('9')">9</button>
        <button v-on:click="addToDisplay('*')">*</button>
        <br>
        <button v-on:click="addToDisplay('0')">0</button>
        <button v-on:click="addToDisplay('.')">.</button>
        <button v-on:click="calculate()">=</button>
        <button v-on:click="addToDisplay('/')">/</button>
        <br>
    </div>
</div>

Javascript文件中添加以下代码:

new Vue({
    el: '#calculator',
    data: {
        display: '0'
    },
    methods: {
        addToDisplay: function(s) {
            //添加数字或运算符
            this.display += s;
        },
        calculate: function() {
            //使用自定义计算器引擎计算表达式
            try {
                this.display = calculator.calculate(this.display);
            } catch (e) {
                alert(e);
                this.display = "";
            }
        }
    }
})

将以上代码加入到Javascript文件中后,在HTML中添加Vue.js的库文件。现在,使用Vue.js实现计算器的方法,即可实现网页计算器。

以上是三种使用Javascript实现计算器功能的方法。通过以上示例,我们可以学习到如何使用eval()函数计算表达式,如何使用自定义计算器引擎计算表达式,以及如何使用Vue.js实现计算器。可以根据自己的需要选择合适的方法来实现网页计算器。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:纯javascript代码实现计算器功能(三种方法) - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • js constructor的实际作用分析

    下面是“js constructor的实际作用分析”的完整攻略。 什么是js constructor? 在JS中,构造函数是用于创建对象的特殊函数。使用构造函数我们可以定义一个特定的对象,并可以为该对象添加属性和方法以及初始化它的值。构造函数是通过关键字”new”来运行的。每个引用类型都有一个constructor(构造函数)属性,这个属性指向该对象的构造函…

    JavaScript 2023年6月11日
    00
  • js调试系列 控制台命令行API使用方法

    JS调试系列:控制台命令行API使用方法 控制台是Web浏览器开发工具的一部分,可以用于调试JavaScript代码以及检查页面元素。控制台中包含了一个强大的命令行接口,用户可以通过API直接与页面交互,从而进行调试、编辑、修改和测试。 本文将详细讲解控制台命令行API的使用方法,包括常见的API函数、参数、数据类型、输出格式等,并附带两个实例说明。 控制台…

    JavaScript 2023年5月27日
    00
  • JavaScript类型系统之基本数据类型与包装类型

    JavaScript类型系统之基本数据类型与包装类型 在JavaScript中,数据类型可以分为两类:基本数据类型和引用数据类型。其中,基本数据类型(primitive data type)包括:Number、String、Boolean、null和undefined,而引用数据类型(reference data type)则包括:Object、Array、…

    JavaScript 2023年6月10日
    00
  • JavaScript实现Sleep函数的代码

    我来为你讲解“JavaScript实现Sleep函数的代码”的攻略。 首先需要注意的是,JavaScript是单线程的语言,当执行了某个代码块时,即使后续还有其他代码块也会等待。因此,为了模拟延迟操作,我们需要使用异步代码。 下面给出两种实现“Sleep函数”的方法: 方法一:使用Promise 创建一个函数,在函数内部返回一个Promise实例。 func…

    JavaScript 2023年5月27日
    00
  • 详解如何将 Vue-cli 改造成支持多页面的 history 模式

    下面是如何将 Vue-cli 改造成支持多页面的 history 模式的攻略。具体步骤如下: 一、创建多页面应用 首先需要在 Vue-cli 中创建多页面应用。在 src 目录下新建多个 .html 文件,比如 index.html、about.html 等。在 src 目录下还需要新建多个 .js 文件,比如 index.js、about.js 等,这些 …

    JavaScript 2023年6月11日
    00
  • js点击更换背景颜色或图片的实例代码

    下面是详细讲解“js点击更换背景颜色或图片的实例代码”的完整攻略,分为以下几个步骤: 步骤1. 创建 HTML 页面 首先创建一个 HTML 页面,可以按照以下示例进行: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf…

    JavaScript 2023年6月11日
    00
  • js精准的倒计时函数分享

    下面我将为你详细讲解“JS 精准的倒计时函数分享”的完整攻略。 简介 在网站中,倒计时是一个非常常见的功能,比如购物网站中的秒杀倒计时、新年倒计时等等。JS 精准的倒计时函数可以用来方便地实现这些功能,本文将介绍如何实现该函数。 准备工作 首先,我们需要准备一个用来显示倒计时的元素以及倒计时结束后需要执行的操作。比如要实现新年倒计时,我们需要准备一个显示时间…

    JavaScript 2023年5月27日
    00
  • JavaScript实现简单的数字倒计时

    下面我将详细讲解JavaScript实现简单的数字倒计时的完整攻略。 1. 实现思路 倒计时可以理解为是一段时间(比如30秒钟)的逆向计时,因此要实现数字倒计时,我们需要知道以下几个东西: 终止时间(即倒计时结束时间) 当前时间 剩余时间(即终止时间减去当前时间) 有了以上三个数据,我们就可以通过JavaScript来实现数字倒计时,具体步骤如下: 获取元素…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部