Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/HTML计算器,需要其他方法来计算结果_Javascript_Html - Fatal编程技术网

Javascript/HTML计算器,需要其他方法来计算结果

Javascript/HTML计算器,需要其他方法来计算结果,javascript,html,Javascript,Html,我在上中学,我们现在学习HTML和javascript。我正在做一个计算器(在互联网的帮助下),我找到了eval()函数。我们基本上还没有学会,所以我需要把它改成别的东西。以下是我的计算器的代码: 萨莫洛格普 贝克尔函数(szam){ document.szamologep.eredmeny.value=document.szamologep.eredmeny.value+szam; } 函数szamol(){ var a=document.szamologep.eredmeny.value

我在上中学,我们现在学习HTML和javascript。我正在做一个计算器(在互联网的帮助下),我找到了eval()函数。我们基本上还没有学会,所以我需要把它改成别的东西。以下是我的计算器的代码:


萨莫洛格普
贝克尔函数(szam){
document.szamologep.eredmeny.value=document.szamologep.eredmeny.value+szam;
}
函数szamol(){
var a=document.szamologep.eredmeny.value;
如果(a){
document.szamologep.eredmeny.value=eval(a)
}
}
萨莫洛格普!
继续,您需要一种方法来确定您正在使用的运算符。下面的代码将只解释一个操作员,但如果您只需要涵盖这些,则将执行您正在寻找的操作

为了澄清上面的粗体文本,这将适用于以下表达式:

X+Y
X-Y
X*Y
X/Y

但不适用于以下表达式:

X+Y+Z
X*Y+Z/p

function szamol() {
        var a = document.szamologep.eredmeny.value;
        if (a) {
            var answer;
            var split = a.split(/([+,\-,*,\/]){1}/g);
            console.log('Split: ' + split);
            var first = Number(split[0]);
            var operator = String(split[1]);
            var second = Number(split[2]);
            switch(operator){
                case '+':
                    answer = first + second;
                break;
                case '-':
                    answer = first - second;
                break;
                case '*':
                    answer = first * second;
                break;
                case '/':
                    answer = first / second;
                break;
            }
            document.szamologep.eredmeny.value = answer;
        }
    }
我们设置空的
answer
变量,然后使用正则表达式在任何运算符
+,-,*,\
上拆分
a
值。我们的
拆分
的第一个元素是第一个数字,我们的
拆分
的第二个元素是运算符,我们的
拆分
的第三个元素是第二个数字


在我们有了我们的片段之后,我们创建了一个
开关
案例来检查我们使用的是哪一个操作符,并以此为基础进行计算。因为输入是文本输入-JavaScript假定我们使用的是字符串-这就是为什么我必须将
第一个
第二个
变量作为
Number()进行类型转换的原因
设置它们时。

您需要使用一个长的
开关
或多个
if-else
语句来查找运算符,并根据选择/按下的运算符对数字/操作数进行操作