用JS写计算器可以有很多种方法,最近我刚刚用JS编写一个计算器,
下面我来谈谈我自己的方法:
首先,让我们从计算器的基本运算来考虑,比如
1 + 2 = 3
数字A 运算符号 数字B 等号 结果
这里的数字我使用了两个字符串str1、str2来表示,虽然它们本身可能是整型或者浮点类型,但是用字符串来表示,可以与各种符号使用统一的表示类型,能为后续的操作带来不少方便。
上述例子是一个基本的整数运算过程,这个过程在计算器操作上可以分解成以下几步:
1、用户输入数字A
调用函数 input(value),value的值为对应的数字或小数点,
function input (a) {
if (end&&(!op)) {Clear();} //检查结束标志,是否继续运算
str1=str1+a;
display (a);
}
字符串str1用来表示当前输入的数字,数字的每一位即是一个字符,把这个字符用a来表示,可以用str1=str1+a;语句来得到最终输入的数字。
2、用户输入运算符号
调用函数 operation(b),参数1、2、3、4分别对应+-*/四种运算符号,
function operation (b) {
if (!op) { //检查运算符号是否重复输入
op=b;
str2=str1;
str1="";
switch (op){
case 1:display("+"); //加法标志
break;
case 2:display("-") //减法标志
break;
case 3:display("*")//乘法标志
break;
case 4:display("/")//除法标志
break;}
};
}
op=b,op作为运算符号标志,记录用户输入的运算操作。当用户开始输入运算符时,说明数字A已输入完毕,str2=str1; 把str1的值,即数字A保存在str2中,str1=""; str1清空,准备存入下一个输入数字B。
3、用户输入数字B
这一步与第一步输入数字A相同。
4、用户输入等号
调用函数 equal(),
function equal () {
switch (op){
case 1:num1=accAdd(str2, str1);