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

yizhihongxing

当我们想在网页中添加一个计算器功能的时候,可以使用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日

相关文章

  • Javascript脚本实现静态网页加密实例代码

    为了让大家更好地理解 Javascript 脚本实现静态网页加密,这里给出一份完整的攻略,包含以下几个部分: 加密原理 加密的实现流程 实现代码及示例 加密原理 Javascript 加密所采用的原理是基于 Asymmetric Encryption (非对称加密)。所谓非对称加密,就是“有一对密钥,一个公钥,一个私钥”。公钥和私钥是一一对应的,公钥加密的数…

    JavaScript 2023年6月11日
    00
  • javascript动画之圆形运动,环绕鼠标运动作小球

    JavaScript动画之圆形运动 在JavaScript中,通过使用CSS3的transform属性或canvas绘图API,可以实现圆形运动效果。接下来,我们以transform属性为例进行详细讲解。 示例1:物体沿圆形路径运动 首先,需要准备一个容器和一个要运动的物体。将其设置为圆形,如下所示: <div id="container&q…

    JavaScript 2023年6月10日
    00
  • JavaScript常用语句循环,判断,字符串换数字

    JavaScript是一种非常常用的编程语言,在编写JavaScript代码时,会使用到循环、判断、将字符串转换为数字等常用语句。以下是这些方面的完整攻略: 循环语句 循环语句用于重复执行某些操作,常见的两个循环语句是for循环和while循环。 for循环 for循环用于重复执行某个操作指定次数。 for (var i = 0; i < 10; i+…

    JavaScript 2023年5月28日
    00
  • JavaScript实现鼠标移动粒子跟随效果

    下面是讲解“JavaScript实现鼠标移动粒子跟随效果”的完整攻略。 确定目标 首先我们需要明确我们的目标:实现鼠标移动时页面上的粒子跟随鼠标移动。这种效果会增加页面的趣味性和互动性,让用户更有参与感。 分析思路 实现鼠标移动粒子跟随效果,需要做以下几个步骤: 创建画布和粒子; 监听鼠标移动事件; 计算鼠标和粒子之间的距离和角度; 将粒子移动到鼠标所在位置…

    JavaScript 2023年6月11日
    00
  • UserData用法总结 lanyu出品

    UserData用法总结 lanyu出品 什么是UserData? UserData 是一种数据结构,它可以用来存储任意类型的数据,并将其附加到 Lua 对象上。在 Lua 中,UserData 可以被视为一个外部对象,类似于指针,但在内部可以存储任何数据。 如何创建 UserData? 假设要给一个对象 obj 附加一个 UserData,并存储一个字符串…

    JavaScript 2023年6月10日
    00
  • 在html中添加script脚本的2种方法和注意事项

    在HTML中,我们可以通过添加<script>标签来添加JavaScript脚本。下面分别介绍两种添加<script>标签的方法以及需要注意的事项。 方法一:直接添加在HTML文件中 在HTML文件中,可以使用<script>标签来内联嵌入JavaScript代码。可以把脚本放在<body>标签或<hea…

    JavaScript 2023年5月27日
    00
  • 微信小程序自定义时间段picker选择器

    现在我来给您详细讲解一下“微信小程序自定义时间段picker选择器”的完整攻略。 一、前置知识 在开始讲解之前,您需要掌握微信小程序基础知识,并且熟悉微信小程序基础组件picker组件。 二、实现过程 1.准备工作 创建一个新的page或component,引入picker组件以及相关的wxss文件和js文件。 2.渲染页面 在wxml文件中,添加picke…

    JavaScript 2023年6月10日
    00
  • JavaScript 直接操作本地文件的实现代码

    为了直接操作本地文件,我们需要使用Node.js中的fs模块。fs模块提供了一些用于读取、写入、修改和删除文件的方法。下面是实现JavaScript直接操作本地文件的流程: 1. 安装Node.js 在电脑上安装Node.js,可参考官方文档(https://nodejs.org/)。 2. 使用Node.js的fs模块 在Node.js中,通过requir…

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