最简单的用js模拟计算器进行计算(初级)

简介: 用js模拟计算器进行计算今天我们来讲一下怎么使用js来模拟计算器的加减乘除基本运算。代码如下:HTML代码: <h1>计算器</h1> <input type="number" name="" id="num1"> <br> <input type="number" name="" id="num2"> <br> <button onclick="func('+')">+</button> <button onclick="func('-')">-</button> <button onclick="func('*')"

用js模拟计算器进行计算




今天我们来讲一下怎么使用js来模拟计算器的加减乘除基本运算。代码如下:


<h1>计算器</h1><inputtype="number"name=""id="num1"><br><inputtype="number"name=""id="num2"><br><buttononclick="func('+')">+</button><buttononclick="func('-')">-</button><buttononclick="func('*')">×</button><buttononclick="func('/')">÷</button><h2>结果:<spanid="res"></span></h2>

JavaScript代码:


 

/*设计思路:1.获取元素2.编写方法   + - * /3.获取两个输入框的值4.调用方法*/// 声明全局变量   储存计算结果varres;
// 1.获取元素varoNum1=document.getElementById("num1");
varoNum2=document.getElementById("num2");
varaBtns=document.getElementsByTagName("button"); //数组varoText=document.getElementById("res");
// 2.编写方法   // 加法// aBtns[0].onclick = function () {//     // 2.获取两个输入框的值//     var oVal1 = Number(oNum1.value);//     var oVal2 = Number(oNum2.value);//     res = oVal1 + oVal2;//     console.log(res);//     oText.innerText = res;// }// 减法// aBtns[1].onclick = function () {//     // 2.获取两个输入框的值//     var oVal1 = Number(oNum1.value);//     var oVal2 = Number(oNum2.value);//     res = oVal1 - oVal2;//     console.log(res);//     oText.innerText = res;// }// 以下代码太啰嗦,需要重复使用,进行简化(封装),如下:// 2.编写方法  将不同的操作类型作为参数functionfunc(x) {
// 3.获取两个输入框的值varoVal1=Number(oNum1.value);
varoVal2=Number(oNum2.value);
res=eval(oVal1+x+oVal2);
console.log(res);
oText.innerText=res;
    }
// 4.调用方法   为了方便直接将方法在HTML行内进行调用 // aBtns[0].οnclick=function(){//     func("+");// };

代码的实现过程中出现了一个问题,就是当我们将函数进行封装后,参数传进来,进行字符串的拼接,将不再对数值进行计算,而是直接进行字符串的拼接,所以需要用到eval()函数。


   eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行。


   如果参数是一个表达式,eval() 函数将执行表达式。如果参数是Javascript语句,eval()将执行 Javascript 语句。


语法:

参数 描述
string 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。


视频讲解链接:
1.https://www.bilibili.com/video/BV1na4y1e7Me/

相关文章
|
18天前
|
JavaScript 算法
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
|
18天前
|
JavaScript 前端开发 大数据
数字太大了,计算加法、减法会报错,结果不正确?怎么办?用JavaScript实现大数据(超过20位的数字)相加减运算。
数字太大了,计算加法、减法会报错,结果不正确?怎么办?用JavaScript实现大数据(超过20位的数字)相加减运算。
|
3月前
|
JavaScript
|
3月前
|
存储 移动开发 JavaScript
NUS CS1101S:SICP JavaScript 描述:五、使用寄存器机进行计算(1)
NUS CS1101S:SICP JavaScript 描述:五、使用寄存器机进行计算(1)
49 0
N..
|
1月前
|
缓存 JavaScript 前端开发
Vue.js的计算属性
Vue.js的计算属性
N..
11 2
|
2月前
|
JavaScript 前端开发
JavaScript 计算时间差并格式化输出
JavaScript 计算时间差并格式化输出
19 0
|
3月前
|
存储 自然语言处理 JavaScript
NUS CS1101S:SICP JavaScript 描述:五、使用寄存器机进行计算(4)
NUS CS1101S:SICP JavaScript 描述:五、使用寄存器机进行计算(4)
48 0
|
3月前
|
存储 JavaScript 前端开发
NUS CS1101S:SICP JavaScript 描述:五、使用寄存器机进行计算(3)
NUS CS1101S:SICP JavaScript 描述:五、使用寄存器机进行计算(3)
67 0
|
3月前
|
存储 监控 JavaScript
NUS CS1101S:SICP JavaScript 描述:五、使用寄存器机进行计算(2)
NUS CS1101S:SICP JavaScript 描述:五、使用寄存器机进行计算(2)
41 1
|
3月前
|
移动开发 JavaScript 前端开发
原生JavaScript+CSS实现计算器(简单的介绍一下eval函数)
原生JavaScript+CSS实现计算器(简单的介绍一下eval函数)
29 0